使用SQL查询从listbox1循环到listbox1到listbox2?可能吗?

时间:2019-02-10 17:37:46

标签: c# sql winforms

我在sql服务器上有一个名为 tblPrice 的表,列为 service price 。我在winforms上有两个listBox

用户将在listBox1中添加项目,然后单击button

SQL查询将搜索listbox1中的所有项目,如果listbox1包含列服务中的值,则该服务的价格将添加到listbox2中。

我尝试了这些代码,但没有将价格添加到listbox2中。

for(int i = 0; i < listBServices.Items.Count; i++)
{
    SqlCommand cmd = new SqlCommand("SELECT price FROM tblPrice WHERE service = '@svc'",
                con.Connection);
    cmd.Parameters.Add("@svc", SqlDbType.Text).Value = listBServices.Items[i].ToString();
    SqlDataReader rd = cmd.ExecuteReader();

    while (rd.Read())
    {
        float price = rd.GetFloat(0);
        listBPrice.Items.Add(price.ToString());
    }
    rd.Close();
}

2 个答案:

答案 0 :(得分:1)

尝试

  SqlCommand cmd = new SqlCommand("SELECT price FROM tblPrice WHERE service = @svc"

代替

  SqlCommand cmd = new SqlCommand("SELECT price FROM tblPrice WHERE service = '@svc'"
                                                                              ^    ^

答案 1 :(得分:0)

对不起,这是我从参数中得出的错误。该代码回答了我的问题。谢谢大家:)

                for (int i = 0; i < listBServices.Items.Count; i++)
                {
                    SqlCommand cmd = new SqlCommand("SELECT price FROM price WHERE service = @svc",
                                con.Connection);
                    cmd.Parameters.Add("@svc", SqlDbType.VarChar).Value = listBServices.Items[i].ToString();
                    SqlDataReader rd = cmd.ExecuteReader();

                    while (rd.Read())
                    {                    
                        listBPrice.Items.Add(rd["price"].ToString());
                    }
                    rd.Close();
                }