2017-02-11 13 views
0

私の構文には4つのデータセットがあります。私はds.Tables[0];を無視し、構文は以下のエラーがスロー1、2と3を繰り返すしたい構文無効なDataTableインデックスへのアクセス

表4

私はds.Tables.Count;が唯一の3のDataTableがあったことを示すだろうと思ったに見つけることができません(0ベースのインデックスなので)。しかし代わりに、それは処理しようとし続け、上記のエラーをスローします。

このプロセスの仕組みを誤解していますか?データテーブル1、2、3のみを処理するにはどうすればよいですか?

(私が最初にint i = 1;に構文を設定しているコードがds.Tables[1];

for (int i= 1; i < ds.Tables.Count; i++) 
{ 

} 
+0

3つのテーブルがある場合は、Test.Countが3になるので、バグが表示されていないと思います。したがって、forループは1と2を実行します。 –

答えて

0

で処理を開始するように、私はあなたが実際にあなたのDataSetに4つのDataTableを追加していることを確認する必要があると思う。私は、テストを作成以下のコードと、期待どおり、それは私のコードは、表2(インデックス1)、表3(インデックス2)、および表4(インデックス3)から始まるループを繰り返す。私はそれをダブルチェックであろう。

var ds = new DataSet(); 
ds.Tables.Add(new DataTable()); // 0 
ds.Tables.Add(new DataTable()); // 1 
ds.Tables.Add(new DataTable()); // 2 
ds.Tables.Add(new DataTable()); // 3 
for (int i = 1; i < ds.Tables.Count; i++) 
{ 
    var currentTable = ds.Tables[i]; 
    if (currentTable == null) 
    { 
     Response.Write("Table is null!"); 
    } 
} 

働いDataSetには4つのDataTaが含まれていますベレス。

こちらがお役に立てば幸いです。

+0

4つのDataTableがあることを確認しました。私はindex [0]を無視し、1,2,3の処理のみを行いたいと思います。 –