在for循环中使用while语句

时间:2014-09-29 09:08:54

标签: c# mysql

所以我的代码循环有问题。

可以在我的listview控件中找到的数据:

enter image description here

我希望获得listview控件中每条记录的ID。通过使用SQL查询搜索记录..

让我在username="asd"

中说出password="1234" id 1号码table1

username="dfg" password="1234" id2 table1

这是我table1的屏幕截图:

enter image description here

问题是,我保存的ID不是正确的。 。 。看到这个图像:

enter image description here

需要保存在我的id中的第二个table2需要2,因为username="dfg" id的数字为2 1}}

需要保存的正确数据如下所示......

enter image description here

这是我到目前为止构建的代码..

        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();


        }

感谢那些愿意帮助的人......

1 个答案:

答案 0 :(得分:0)

while循环的重点是什么?如果只有一条记录,那么你不需要一个循环,如果不止一个,那么你总是会最终使用最后一个。如果有任何疑问会有匹配,那么请测试数据阅读器的HasRows属性,如果是false则不要做任何其他事情。如果总会有匹配,那么只需使用那一场比赛。

另外,通过密码搜索有什么意义?当然用户名是唯一的,为什么不只是搜索?为什么你甚至知道用户密码?