我试图通过在textbox1上获取用户输入客户ID来获取标签上显示的余额和客户名称。但每当我尝试输入ID时,即使只是ID的第一个数字,它也已经显示错误“条件表达式中的数据类型不匹配”。
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
string sql = "SELECT * FROM Customer WHERE ID= '" +textBox1.Text+ "'";
cmd.CommandText = sql;
OleDbDataReader reader = null;
reader = cmd.ExecuteReader();
while (reader.Read())
{
labelbalance.Text = reader["Balance"].ToString();
labelname.Text = reader["Firstname"].ToString() + reader["Lastname"].ToString();
}
答案 0 :(得分:0)
删除Id:
周围的单引号string sql = "SELECT * FROM Customer WHERE ID= " + textBox1.Text;
因为你有引号,所以ID被解释为字符。
更新 正如评论中所建议的那样,而是使用参数化查询并避免sql注入:
string sql = "SELECT * FROM Customer WHERE ID= @var";
cmd.CommandText = sql;
cmd.Parameters.Add(new OleDbParameter("@var", int.Parse(textBox1.Text));