在标记要删除的行之后尝试更新DataTable时,我遇到了一个奇怪的异常。看起来它正在验证我试图删除的行中的数据。我能够成功保存同一行,为什么不让它删除它?
在VS 2008和SQL Server CE中使用C#。
我的代码的基本部分(我希望):
var listDataTable = new booksDataSet.ListDataTable();
this.tableAdapterManager1.ListTableAdapter.Fill(listDataTable);
listDataTable.Rows[0].Delete();
this.tableAdapterManager1.ListTableAdapter.Update(listDataTable);
booksDataSet1.List.AcceptChanges(); // exception here
例外是: System.FormatException未处理 Message =“@ p2:foo - 输入字符串的格式不正确。” 源= “System.Data”
我把它简化为一个非常简单的表格: Id(PK,int,not null) 名称(nvarchar(100),非null) 注释(nvarchar(4000),null)
我试图删除的行(第一行)中的数据是Name =“foo”,所以它是正确的行,但为什么在删除行之前它关心数据是什么?
答案 0 :(得分:1)
您需要对应用程序进行跟踪(尝试在SQL Server的本地副本上运行它并运行“Profiler”);我的猜测是当SQL查询命中你的SQL Server时,其中一部分格式不正确。我敢打赌,当你进行追踪时,你会发现问题。
答案 1 :(得分:0)
我得到了相同的回复。如果我与{0:c}绑定,则每次删除都会失败。认为这是$我尝试{0:N2}同样的回应。删除它,删除就好了。