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

c#中的数据类型不匹配

其他可能的SQL Injection漏洞;上述错误可能是由于您的查询中的WHERE部分;其中Student_ID是数字,您正试图将其与字符串类型数据进行比较。

where Student_ID='" + textsearch.Text + "'"

考虑到您的Student_IDINTNUMBER类型列更改您的代码如下所示。注意使用参数化查询来避免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()));