我在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();
}
答案 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();
}