所以我的代码循环有问题。
可以在我的listview
控件中找到的数据:
我希望获得listview
控件中每条记录的ID。通过使用SQL查询搜索记录..
让我在username="asd"
password="1234"
id
1
号码table1
username="dfg"
password="1234"
id
号2
table1
这是我table1
的屏幕截图:
问题是,我保存的ID不是正确的。 。 。看到这个图像:
需要保存在我的id
中的第二个table2
需要2
,因为username="dfg"
id
的数字为2
1}}
需要保存的正确数据如下所示......
这是我到目前为止构建的代码..
for (int cnt = 0; cnt <= listView1.Items.Count - 1; cnt++)
{
string v1 = listView1.Items[cnt].SubItems[1].Text;
string v2 = listView1.Items[cnt].SubItems[2].Text;
//////Search for the Id of the current row value
cmd = new MySqlCommand("select * from account where u = @v1 AND p = @v2 ", conn);
cmd.Parameters.Add(new MySqlParameter("@v1", v1.Trim()));
cmd.Parameters.Add(new MySqlParameter("@v2", v2.Trim()));
conn.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
iid = reader.GetString("aid");
}
conn.Close();
////////Save the retrieved Id in another table
conn.Open();
MySqlCommand cd = new MySqlCommand("insert into csvsave(aid)values(@id)", conn);
cd.Parameters.Add(new MySqlParameter("@id", iid));
cd.ExecuteNonQuery();
conn.Close();
}
感谢那些愿意帮助的人......
答案 0 :(得分:0)
while
循环的重点是什么?如果只有一条记录,那么你不需要一个循环,如果不止一个,那么你总是会最终使用最后一个。如果有任何疑问会有匹配,那么请测试数据阅读器的HasRows
属性,如果是false
则不要做任何其他事情。如果总会有匹配,那么只需使用那一场比赛。
另外,通过密码搜索有什么意义?当然用户名是唯一的,为什么不只是搜索?为什么你甚至知道用户密码?