c#中的数据类型不匹配
本文关键字:不匹配 数据类型 | 更新日期: 2023-09-27 18:11:01
为什么我的代码显示这个消息
标准表达式中的数据类型不匹配。
属性Fine
为数字数据类型。
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string cq = "select sum(Fine) from Studentbook where Student_ID='" + textsearch.Text + "'";
command.CommandText = cq;
int a = Convert.ToInt32(command.ExecuteScalar());
connection.Close();
MessageBox.Show(a.ToString(), "Your FINE is", MessageBoxButtons.OK);
其他可能的SQL Injection
漏洞;上述错误可能是由于您的查询中的WHERE
部分;其中Student_ID
是数字,您正试图将其与字符串类型数据进行比较。
where Student_ID='" + textsearch.Text + "'"
考虑到您的Student_ID
是INT
或NUMBER
类型列更改您的代码如下所示。注意使用参数化查询来避免SQL注入
string sql = "select sum(Fine) from Studentbook where Student_ID = @studentid";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@studentid", Convert.ToInt32(textsearch.Text.Trim()));