私はこのようなコードを持っている:のSqlDataAdapter更新エラーの原因
DataTable dataTable;
// filling table with data from db, closing connection
// modifying table
// trying to save it
// "some_table" is the same table data was loaded from
var connection = new SqlConnection(some_connection_string);
var dataAdapter = new SqlDataAdapter("select * from some_table", connection);
var cbMar = new SqlCommandBuilder(dataAdapter);
SqlTransaction transaction = null;
dataAdapter.InsertCommand = cbMar.GetInsertCommand();
dataAdapter.UpdateCommand = cbMar.GetUpdateCommand(true);
dataAdapter.DeleteCommand = cbMar.GetDeleteCommand(true);
transaction = connection.BeginTransaction();
dataAdapter.InsertCommand.Transaction = transaction;
dataAdapter.UpdateCommand.Transaction = transaction;
dataAdapter.DeleteCommand.Transaction = transaction;
dataAdapter.Update(dataTable);
そしてここでは、Update
で、私は例外を取得しています:
はのInt32に文字列からパラメータ値を変換に失敗しました。
のSystem.Exception {にSystem.FormatException}のInnerException:
入力文字列が正しい形式ではありませんでした。私は、データベースの列を整数に文字列値を設定しているので、私は理解したよう
にSystem.FormatException
は、それがあります。
質問:この例外の原因となった列と行を正確に見つける方法を教えてください。
System.Data.dllの.pdbファイルをビルドすることができました。その中に入ることができますが、System.Data.dllから任意の変数を追加しようとしていますが、エラーが発生しています最適化されました。わかりましたが、System.Data.dllにはデバッグバージョンがありません。
整数を含める必要があるDataGridCellの1つに、整数ではない値があります。 – Steve
はい、私は控えめです。ここでの問題は、この表では数千の行と約150の列があることです。それらをすべてチェックするのは難しいです。エラーソースを自動的に見つける方法はありますか? – ilya