『Visual C#実践講座』 3章 その3 テーブル読み込みエラー
var tmpTb1 = new Dataset1.SOMECODEDataTable(); using(SqlConnection _con = new SqlConnection(strConnection)) { _con.Open(); try { var da = new SqlDataAdapter(strSql, _con); var cb = new SqlCommandBuilder(da); da.Fill(tmpTb1); } catch(ConstraintException ex) { Console.WriteLine(ex.Message); DataRow[] er = tmbTb1.GetErrors(); Console.WriteLine("エラーレコード"); for(int i = 0; i < er.Length; i++) { for(int j = 0; j < er[i].ItemArray.Length; j++) { Console.Write(er[i].ItemArray[j] + ","); } Console.WriteLine(""); } } }
SqlConnection クラス (System.Data.SqlClient)
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlconnection(VS.80).aspx
SqlConnection メンバ (System.Data.SqlClient)
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlconnection_members(VS.80).aspx
CommandBuilder でのコマンドの生成 (ADO.NET)
http://msdn.microsoft.com/ja-jp/library/tf579hcz.aspx
SqlCommandBuilder クラス
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlcommandbuilder(VS.71).aspx
SqlCommandBuilder メンバ
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlcommandbuilder_members(VS.71).aspx
System.Data.SqlClient 名前空間
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient(VS.71).aspx
SqlDataAdapter クラス
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqldataadapter(VS.71).aspx
SqlDataAdapter メンバ
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqldataadapter_members(VS.71).aspx
DbDataAdapter.Fill メソッド
http://msdn.microsoft.com/ja-jp/library/system.data.common.dbdataadapter.fill(VS.71).aspx
データ ソース内の行と一致するように DataSet 内の行を追加または更新します。
DataTable.GetErrors メソッド (System.Data)
http://msdn.microsoft.com/ja-jp/library/system.data.datatable.geterrors(VS.80).aspx
エラーが含まれる DataRow オブジェクトの配列を取得します。
これを使って、読み込みエラーの原因箇所を特定できる。DataRow[]型を返す。
DataRow.ItemArray プロパティ (System.Data)
http://msdn.microsoft.com/ja-jp/library/system.data.datarow.itemarray(VS.80).aspx
Object型の配列