string s = "Select number,name from table where id = 5 and num = 20";
SqlDataAdapter adapter = new SqlDataAdapter(s, con);
adapter.Fill(dset, "ABC");
SqlCommandBuilder sT = new SqlCommandBuilder(adapter);
adapter.Update(ds,"ABC");
以下代码抛出异常,表示无法找到表ABC
答案 0 :(得分:0)
首先,作为Paddy said,您的.Fill
和.Update
方法使用不同的DataSet
&#39。一个是dset
,另一个是ds
。
我认为此异常发生在adapter.Update(ds,"ABC");
行,因为DbDataAdapter.Fill
method会在ABC
中创建dset
表,即使表格中没有ABC
Fill方法支持DataSet包含多个的场景 名称仅由大小写不同的DataTable对象。在这种情况下, Fill执行区分大小写的比较以查找相应的 table,如果不存在完全匹配则创建新表。
但是DbDataAdapter.Update
method并没有这样做。如果您尝试更新不存在的表格,则不会在DataSet
中创建新表格。
此.Update
方法搜索区分大小写的匹配项(在这种情况下为abc
)并且如果找不到它,则抛出异常。