我试图用查询生成的值填充列表框,代码运行没有任何问题,但列表框没有显示任何结果,我做错了什么,有什么遗漏?
String sql = "SELECT * FROM products where code = "+textBox1.Text;
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, conn); //c.con is the connection string
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
listBox1.Items.Add(reader["description"].ToString() + ": "+reader["price"].ToString());
listBox1.Refresh();
}
reader.Close();
conn.Close();
}
}
答案 0 :(得分:3)
如果您的代码列是字符串类型,那么
String sql = "SELECT * FROM products where code = '"+textBox1.Text + "'";
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, conn); //c.con is the connection string
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
listBox1.Items.Add(reader["description"].ToString() + ": "+reader["price"].ToString());
}
reader.Close();
}
conn.Close();
}
另外,要添加所有值,请使用while而不是if遍历阅读器中的所有记录。并在using语句后关闭连接。 我确信错误的序列导致了这个问题。
答案 1 :(得分:0)
我在这里对你的代码做了一些假设,'代码'是一个数字?如果没有,你试试了吗?
String sql = "SELECT * FROM products where code = '"+textBox1.Text+"'";