私のwinフォームアプリケーションでは、2つのlistView:listView1とlistView2があります。
listView1には、ユーザーが選択したデータベーステーブルが1つ以上あります。
ボタンを押すと、選択したテーブルに関連するすべての列が表示されます。
listView1から2つのテーブルを選択すると、ネストされたループは1つのテーブルのすべての列を表示しますが、範囲外で実行されているため、選択された2番目のテーブルの列は取得されません。どこが間違っているのか教えていただけますか?ここで が私のコードです:インデックスがforループの範囲外で実行されています
conn.Open();
SqlCommand sc2 = new SqlCommand("select C_Name, T from (select CONCAT(Table_Schema,'.',Table_Name) T, Concat(Table_Name,'.',Column_Name) C_Name from Information_Schema.columns) as Teo ;", conn);
SqlDataAdapter sda2 = new SqlDataAdapter(sc2);
sda2.Fill(dt);
conn.Close();
DataRow[] foundrows;
string express;
for (int i = 0; i < listView1.CheckedItems.Count; i++)
{
MessageBox.Show(listView1.CheckedItems.Count.ToString());
express="T ='" + listView1.CheckedItems[i].Text+"'";
foundrows = dt.Select(express);
MessageBox.Show(foundrows.Length.ToString());
for (int p = 0; p < foundrows.Length; i++)
{
listView2.Items.Add(foundrows[i][1].ToString());
}
}
を実際のエラーコードと行がそれを投げているとは何ですか? – Abion47
2番目のループでiインデックスをインクリメントしていますか? for(int p = 0; p
Ehz
@Ehzはそれを得ました。 2番目のループは 'p'を使うべきときに' i'を使います。 – Abion47