『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型の配列