请大家看下我的问题,
我首先用select*...得到一个Dataset,里面有一条记录
然后Dataset.Tables[0].Rows[0][8]="asdaad";这种方法改了Dataset里的值
然后声明MySqlCommandBuilder cb=new MySqlCommandBuilder(da);//da是DataAdapter,上面用过的
da.UpdateCommand = cb.GetUpdateCommand();
然后我用
da.UpdateCommand.CommandText.ToString();
得到的竟然是UPDATE `future`.`user` WHERE ((`ID` = @p1))
我想问一下@p1是什么东西啊,ID是表里的第一列,为什么没有其他列,只有ID列呢

解决方案 »

  1.   

    其实我也不想管,都是被逼的,我要Update的东西完全修改不了,而且还不报错...
      

  2.   

    哦?难道说,@p1是Dataset中的所有列的值拼到一块了,然后都填到ID里去了?然后因为ID是数字的,所以就没成功?
    是吗是吗?
      

  3.   

    WHERE ((`ID` = @p1))
    只是个条件把你所更新的记录ID给记录下来。更新时根据ID更新当前数据
    SqlCommandBuilder就是这么更新的。