SqlCommandBuilder的十分之诡异,匪夷所思的错误问题~~~~我快疯了

rainrealworld 2008-03-29 10:09:04
我从一个有主键的表里查出来空信息,

SqlDataAdapter sda;
DataTable dt;



string sqlStr = "select * from aa where 1=0 ";
SqlConnection con = new SqlConnection("连接的字符串");
this.sda = new SqlDataAdapter(sqlStr,con);
this.dt = new DataTable();
this.sda.Fill(dt);
this.dataGridView1.DataSource = this.dt;

DataRow dr;
dr["OrderNo"] = "ff";//代码更新添加的一行的一列
this.dt.Rows.Add(dr);


点击提交的时候:
this.dt.Rows[0]["ArrID"] = 1;//代码再次更新一行的一列

SqlCommandBuilder scb = new SqlCommandBuilder(this.sda);
this.sda.Update(this.dt)

//**************************

问题是我查出来,之后,在datagridview 界面修改别的列的时候,在单元格没有结束编辑的时候提交,那个【点击提交的时候:】一下的更新的,和在在datagridview 界面修改的信息就没有提交,this.dt里的信息都更新了,问题是SqlCommandBuilder自动生成的sql语句还是【点击提交的时候:】上面刚开始查出来的时候的sql语句,SqlCommandBuilder没有及时更新,而我在提交前用this.dataGridView1.EndEdit();结束编辑也不行。很是郁闷~~~~~请高手帮忙啊.
...全文
142 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rtsp 2008-03-29
  • 打赏
  • 举报
回复
没搞懂。。。
我也认同 2008-03-29
  • 打赏
  • 举报
回复
DataRow dr;         // 这里没有实例化怎么用?1楼也说了
dr["OrderNo"] = "ff";//代码更新添加的一行的一列
this.dt.Rows.Add(dr);


还有SqlCommandBuilder所生成的语句中必须包含主键列或唯一列 没有包含的话是不会自动生成语句的
gs0038 2008-03-29
  • 打赏
  • 举报
回复
不明白你做什么
boblaw 2008-03-29
  • 打赏
  • 举报
回复
DataRow dr=dt.NetRow()
csharp_start 2008-03-29
  • 打赏
  • 举报
回复
curencymanager.editcurentedit;
qiyousyc 2008-03-29
  • 打赏
  • 举报
回复
DataRow dr=dt.NetRow()
ld_security 2008-03-29
  • 打赏
  • 举报
回复
.......//参考
DataRow thisRow=thisDataSet.Tables["Customers"].NewRows();
thisRow["CustomerID"]="11";
thisRow["CustomerName"]="niuniu";
thisDataSet.Tables["Customers"].Rows.Add(thisRow);
thisAdapter.Update(thisDataSet,"Customers";)
.....

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧