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 was unhandled Message="@p2 : foo - 入力文字列が正しい形式ではありませんでした。" ソース="System.Data"

Id (PK, int, not null) Name (nvarchar(100), not null) Notes (nvarchar(4000), null)

削除しようとしている行 (最初の行) のデータは Name = "foo" であるため、正しい行ですが、行を削除する前にデータが何であるかを気にするのはなぜですか?

4

2 に答える 2

1

アプリでトレースを実行する必要があります (SQL Server のローカル コピーで実行して、「プロファイラー」を実行してみてください)。私の推測では、SQL クエリが SQL Server にヒットしたときに、その一部が正しい形式になっていないのです。トレースを実行すると問題が発生するはずです。

于 2009-01-18T22:05:43.953 に答える
0

同じ応答が得られます。{0:c} でバインドすると、毎回削除に失敗します。$ だと思って {0:N2} 同じ応答を試みました。削除します。問題なく削除されます。

于 2010-06-15T16:34:53.913 に答える