Visual Studio 2010 で Visual C# アプリケーションを使用しています。フォームに 2 つの listBox があります。最初のものには ID が含まれており、2 番目のものには番号が含まれており、これらはすべて私が作成したデータベースに保存されています。ボタンもあり、ボタンがクリックされたときに、最初の listBox に表示される 1 つの ID ごとにデータベースの列の 1 つを更新し、それらすべての ID を残りの列と共に別のテーブルに保存します。私のデータベースの。
最初の部分 (listBox に表示されるすべての ID の列の 1 つを更新する) は成功しましたが、2 番目の部分を機能させることができません。クエリを実行するまで待機する必要があると誰かに言われましたが、それによってアプリケーションが遅くなることはありませんか? また、私はそれを行う方法がわかりません。
私が間違っていなければ、問題は私が使用しているループ内のループです。
if (listBox1.Items.Count > 0)
{
string kat1 = "Μοριοδοτηθείσα";
cmd.CommandText = "UPDATE Table2 SET kat_aitisis=@kat WHERE aitisi_ID=@id";
cmd.Parameters.AddWithValue("@kat", kat1);
cmd.Parameters.AddWithValue("@id", 0);
for (int i = 0; i < listBox1.Items.Count; i++)
{
cn.Open();
cmd.Parameters["@id"].Value = Convert.ToInt32(listBox1.Items[i]);
cmd.ExecuteNonQuery();
cmd.Clone();
cmd.CommandText = "select * from Table2 WHERE aitisi_ID=@id";
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
cmd1.CommandText = "Insert INTO Table3 (aitisi_ID,imerominia_aitisis,Epwnimo,Onoma,ADT,Poli,TK,Address,Telephone,email,username,password,IEK,Eidikotita,oikogen_kat,erg_gon,erg_spoy,eisodima_gon,eisodima_spoy,moria) values (dr[0],dr[1],dr[2],dr[3],dr[4],dr[5],dr[6],dr[7],dr[8],dr[9],dr[10],dr[11],dr[12],dr[13],dr[14],dr[15],dr[16],dr[17],dr[18],dr[19])";
cmd1.ExecuteNonQuery();
cmd.Clone();
}
}
cn.Close();
}
MessageBox.Show("blahblah.");
}