日期:2014-05-18  浏览次数:21031 次

字符转换问题,帮忙看下
我用这个语句向数据库中插入数据:在数据库中查出来显示为null。


   
string sql = "insert into test(number,subject,sources) values(@number,@subject,@sources)";
  MySqlCommand cmd = new MySqlCommand(sql,conn);
  MySqlParameter prm1 = new MySqlParameter("@number",this.NumbertextBox1.Text);
  cmd.Parameters.Add(prm1); ------在数据库中 number字段为int(11)
   
  MySqlParameter parm2 = new MySqlParameter("@subject",this.subjecttextBox2.Text);
  cmd.Parameters.Add(parm2);------- subject char(20)
   
  MySqlParameter parm3 = new MySqlParameter("@sources",this.SourcestextBox3.Text);
  cmd.Parameters.Add(parm3);------sources int(11)
   
  cmd.Connection.Open();
  int array = cmd.ExecuteNonQuery();
  if (array > 0)
  {
  MessageBox.Show("数据插入成功");
  }
  else
  {
  MessageBox.Show("数据插入失败");
  }
   
   
我用convert.toint32(cmd.parameters.add(parm1).value);这个方法转换,插进去的数据显示的还是NULL,有什么方法转换的?
 

------解决方案--------------------
mysql参数名不用@number这种形式,而是用?number。

也就是说参数名前是?而不是@。所以你参数名写错了。