1

在标记要删除的行后尝试更新 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 - 输入字符串的格式不正确。" 源="系统.数据"

我已将其简化为一个非常简单的表: Id (PK, int, not null) Name (nvarchar(100), not null) Notes (nvarchar(4000), null)

我要删除的行(第一行)中的数据是 Name = "foo",所以它是正确的行,但为什么它在删除行之前关心数据是什么?

4

2 回答 2

1

您需要对应用程序进行跟踪(尝试在 SQL Server 的本地副本上运行它并运行“Profiler”);我的猜测是当 SQL 查询访问您的 SQL Server 时,它的一部分格式不正确。我敢打赌,当您运行跟踪时,您会发现问题所在。

于 2009-01-18T22:05:43.953 回答
0

我得到同样的回应。如果我与 {0:c} 绑定,每次删除都会失败。以为是 $ 我尝试了 {0:N2} 相同的响应。删除它,删除就好了。

于 2010-06-15T16:34:53.913 回答