删除记录时提交数据集出错,说是“更新要求有效的 DeleteCommand。”

csut_deng 2003-08-22 11:34:13
删除代码:
this.BindingContext[dsGzryxxb1,"gzryxxb"].RemoveAt(this.BindingContext[dsGzryxxb1,"gzryxxb"].Position);

提交代码:
sqlDataAdapter1.Update(dsGzryxxb1,"gzryxxb");

请问要怎么才不会出错,又能正确删除数据呢?
...全文
109 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
csut_deng 2003-08-27
  • 打赏
  • 举报
回复
ok,好了,多谢各位!结贴 !
greenhill1 2003-08-26
  • 打赏
  • 举报
回复
按照步骤执行的话应该没有问题的!可能是你的数据库连接有问题,所以没有办法正确的配置数据适配器。建议你仔细检查一下看看也许是什么小错误导致的。
dahuzizyd 2003-08-26
  • 打赏
  • 举报
回复
如果你的数据连接等配置没问题的话,可以使用CommandBuilder类来自动生成updatacommand
这是帮助里的示例:
OleDbConnection myConn = new OleDbConnection(myConnection);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(myDataAdapter);

myConn.Open();

DataSet custDS = new DataSet();
myDataAdapter.Fill(custDS, "Customers");

//code to modify data in dataset here

//Without the OleDbCommandBuilder this line would fail
myDataAdapter.Update(custDS, "Customers");

myConn.Close();

return custDS;
注意:你的表要有主键
csut_deng 2003-08-26
  • 打赏
  • 举报
回复
我是用的自动生成dataset,没有用手工代码,然后在窗体显示的时候调用了
dsGzryxxb1.Clear();
sqlDataAdapter1.Fill(dsGzryxxb1);
数据绑定也是在控件的属性里设置的!
greenhill1 2003-08-26
  • 打赏
  • 举报
回复
把整段代码贴出来!看看你的SqlAdapter是不是和Connection配置好了?
csut_deng 2003-08-26
  • 打赏
  • 举报
回复
我已经如上所说,加上sqlcommand,代码如下:
this.BindingContext[dsGzryxxb1,"gzryxxb"].RemoveAt(this.BindingContext[dsGzryxxb1,"gzryxxb"].Position);
SqlCommandBuilder custCB = new SqlCommandBuilder(sqlDataAdapter1);
sqlDataAdapter1.Update(dsGzryxxb1,"gzryxxb");

但弹出的问题是:"更新要求 DeleteCommand 具有连接对象。该 DeleteCommand 的 Connection 属性尚未初始化。",请问该如何解决,急呀....
csut_deng 2003-08-26
  • 打赏
  • 举报
回复
我已经如上所说,加上sqlcommand,代码如下:
this.BindingContext[dsGzryxxb1,"gzryxxb"].RemoveAt(this.BindingContext[dsGzryxxb1,"gzryxxb"].Position);
SqlCommandBuilder custCB = new SqlCommandBuilder(sqlDataAdapter1);
sqlDataAdapter1.Update(dsGzryxxb1,"gzryxxb");

但弹出的问题是:"更新要求 DeleteCommand 具有连接对象。该 DeleteCommand 的 Connection 属性尚未初始化。",请问该如何解决,急呀....
greenhill1 2003-08-22
  • 打赏
  • 举报
回复
SqlConnection thisConnection=new SqlConnection(@"Data Source=SERVER;User ID=sa;Password=;Initial Catalog=dx");

thisConnection.Open();

SqlDataAdapter thisAdapter=new SqlDataAdapter("SELECT * FROM 班级",thisConnection);

SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter);

DataSet thisDataSet=new DataSet();

thisAdapter.Fill(thisDataSet,"班级");

DataRow findRow=thisDataSet.Tables["班级"].Rows[CellNu];

findRow.Delete();

thisAdapter.Update(thisDataSet,"班级");

thisConnection.Close();
firejie 2003-08-22
  • 打赏
  • 举报
回复
设置一下DeleteCommand看看
Zengqf_W 2003-08-22
  • 打赏
  • 举报
回复
sqlDataAdapter1.DeleteCommand = 'Delete * From 你的表 Where 你的条件';
jjcccc 2003-08-22
  • 打赏
  • 举报
回复
sqlDataAdapter1没有设置DeleteCommand或DeleteCommand设置错误
momoguagua 2003-08-22
  • 打赏
  • 举报
回复
没有建立DeleteCommand,如果你用的是DataSet,并且是不是多表联合查询,加上下面这句,da是你的SqlDataAdapter的名字。
System.Data.SqlClient.SqlCommandBuilder cb = new SqlCommandBuilder(da);
Erice 2003-08-22
  • 打赏
  • 举报
回复
sqlDataAdapter1没有设置DeleteCommand或DeleteCommand的语法和设置错误
csut_deng 2003-08-22
  • 打赏
  • 举报
回复
问题是:我是在DataGrid中删除用户当前行数据,怎么能用sql语句来配置DeleteCommand呢?

110,536

社区成员

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

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

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