我在 Visual Studio 2010 上有一个 Visual C# 应用程序。在一个表单上,我有 2 个列表框。第一个包含 ID,第二个包含数字,所有这些都保存在我创建的数据库中。我还有一个按钮,我希望在单击该按钮时为第一个 listBox 上出现的每个 ID 更新我的数据库中的一个列,并将所有这些 ID 与另一个表上的其余列一起保存我的数据库。
我在第一部分取得了成功(为出现在列表框中的每个 ID 更新其中一个列),但我无法使第二部分工作。有人告诉我,我必须在两次查询之间等待,但这不会让我的应用程序变慢吗?另外,我不知道该怎么做。
如果我没记错的话,问题是我使用的循环中的循环。
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.");
}