如何使用C#中的MS Access数据库在标签上显示数据

时间:2018-01-08 23:56:08

标签: c# ms-access

我试图通过在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();
                }

1 个答案:

答案 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));