错误是发生在this.odbcAdapter.Fill(dataset,"Customers");这一句的
解决方案 »
- BindingSource.AddNew与Current的问题
- 关于UDP发送数据问题,请求高手啊
- 水晶报表现实:数据集中存放的是1或0,但报表上需要显示"是"或者"否",如何实现?
- 怎样在WinForms中禁用Alt+Tab,Print Screen,Windows,Alt+F4键
- 我想用Socket实现Ftp文件的移动,咋整?另外,Socket.Send("STOR " + ……);这个"STOR "、"RETR "之类的东西哪里有全面的祥解吗?
- 请问:C#中怎么存画上去的图
- VS2005 下的报表问题
- 为什么pictureBox有时显示有时不显示
- repeater中使用JS进行全选功能的一点问题
- 我想得到dataGrid或dataSet中两列的乘积再求积的和,50分送做年礼:)
- 在c/s中怎样在DataGrid迁入checkBox
- 新建立的c#qq群,欢迎大家加入
this.odbcAdapter.Fill(dataset,"Customers");
改成
this.odbcAdapter.DeleteCommand=cmd;
this.odbcAdapter.Updata(dataset,"Customers");
试试
同意楼上的不过楼主的代码很奇怪这是显示的代码还是删除的?显示的话DataGrid还能有数据吗?
时,参数"Customers"指的是SourceTableName,而直接从数据库取出来的数据集是不带TableName的,缺省为"Table",所以,你在调用
this.odbcAdapter.Updata(dataset,"Customers");
之前,需要加上TableMapping:
this.odbcAdapter.TableMappings.Add("Table","Customers");试一下。
我觉得还是手工控制connection比较好
gz
dataset.Tables[0].TableName="Customers";
改成如下代码了
int no=datagrid.CurrentRowIndex;
string name=(string)dataset.Tables["Customers"].Rows[no][0];
OdbcCommand cmd = new OdbcCommand("DELETE FROM Customers WHERE CustomerID=?",odbcConnection);
cmd.Parameters.Add("@CustomerID", OdbcType.NChar, 5,"CustomerID");
this.odbcAdapter.DeleteCommand=cmd;
this.odbcAdapter.Update(dataset,"Customers");
this.odbcAdapter.Fill(dataset,"Customers");
现在已经可以执行了,跟踪代码的时候发现CustomerID已经被正确的取出来了,
但是执行以后datagrid中的相关行没有被删掉,请大家继续指点,谢谢!
。我刚刚接触这个东东,写的代码未免拙陋,让大家见笑了:)