以下是我的代码我使用DATAGRID做了一个按钮列,是更新的,一切都好了,而且也显示更新成功,我看过zz.ExecuteNonQuery ();值为零,而且数据库并没有更新,请问这是什么回事啊。 
MY是我连接数据库得到的字符串。谢谢大家了。private void DataGrid1_UpdateCommand(object source,System.Web.UI .WebControls .DataGridCommandEventArgs e)
{ string updatecmd="update student_info set student_name='"+((TextBox)e.Item .Cells [2].Controls [0]).Text+"'  where student_id like '"+((TextBox)e.Item .Cells [1].Controls [0]).Text+"'";
OleDbCommand zz=new OleDbCommand (updatecmd,my);
zz.Connection .Open ();             int a=zz.ExecuteNonQuery ();             Label1.Text =a.ToString ();
               bindgrid();

解决方案 »

  1.   

    string updatecmd="update student_info set student_name='"+((TextBox)e.Item .Cells [2].Controls [0]).Text+"'  where student_id like '"+((TextBox)e.Item .Cells [1].Controls [0]).Text+"'";
    ---------------
    调试这句代码,看看什么值
      

  2.   

    估计是
    string updatecmd="update student_info set student_name='"+((TextBox)e.Item .Cells [2].Controls [0]).Text+"'  where student_id like '"+((TextBox)e.Item .Cells [1].Controls [0]).Text+"'";
    没有匹配到
      

  3.   

    调试这一句,应该如何调啊,我是初学者,请指教
    -------------------------------------------------------------------------------------
    先F9设断点,然后F5调试,再用鼠标点DATAGRID的更新按钮,触发更新事件,然后你就可以F10来查看各个变量的值了。
      

  4.   

    我将这一句选中,然后按了F9,然后F5调试,更新,最后我用F10来查,就看到下一句有黄色的文字
      

  5.   

    建议你先把(TextBox)e.Item .Cells [2].Controls [0]).Text的值先赋给一个变量,做一下限制 不然容易出错.
    也可以把updatecmd 打出来看一下~
    也可以在VS调试状态把命令工具掉出来查看相关的值
      

  6.   

    我测试出来了。(TextBox)e.Item .Cells [2].Controls [0]).Text给了一个变量,是正确的,和我输入的一样
    只是updatecmd这个出来就是NULL,
    我的数据库中,全是用的数字和文本。。应该不会有错吧。
      

  7.   

    我知道是什么问题了,因为我设置了第一列不可以改变,是从第二列开始改变的,所以才会这样,我想问一下,如何判断前面的值和第一列第一行的值一样呢??,我是说在一行中,因为我如果将where去掉的话,就是说这一列的数字全部改掉了,我问一下。
      

  8.   

    把SQL语句放到查询分析器里看一看,估计是SQL的问题
      

  9.   

    我已经看过了,我想问一下,经如说我有个表,就是DATAGRID的表,我第一列是固定的不可以改,而第二第三列可以按钮列进行更改,我知道第二第三列的这个赋值语句是什么,但是条件是什么不知道,就是说第一列的那个固定的值应该如何取值呢?、