数据类型不匹配
本文关键字:不匹配 数据类型 | 更新日期: 2023-09-27 18:10:25
当我试图从数据库选择userid到数据表时,我得到了这个错误。第一个userid是一个自动编号,第二个userid是一个数字,数据库是一个MS Access数据库。
private void ()
{
OdbcDataAdapter ad = new OdbcDataAdapter("select userid from userinfo where BadgeNumber='" + UserID + "'", this.FM.Cn);
DataTable t = new DataTable();
ad.Fill(t);
ad.Dispose();
if (t.Rows.Count > 0)
{
OdbcCommand cmd = new OdbcCommand();
cmd.Connection = this.FM.Cn;
string id = t.Rows[0][0].ToString();
//Check Date
OdbcDataAdapter add = new OdbcDataAdapter("Select USERID from checkinout where Userid='" + id + "'", this.FM.Cn);
DataTable tc = new DataTable();
add.Fill(tc); // <- I gotta error here.
add.Dispose();
}
}
将查询改为:
"Select USERID from checkinout where Userid=" + id
在SQL查询中,字符串字面量(或字符)需要被括在一对单引号'
中,这对单引号用于分隔字符串。分隔符基本上是用来标识边界的字符——对于字符串,单引号指定字符串的开始和结束位置。
由于数字(例如整数)的性质,没有必要指示分隔符,如单引号。你的代码失败了,因为当数据库引擎看到单引号时,它期待一个字符串,但你的列是一个数字数据类型,这就是为什么你在执行查询时获得了数据类型不匹配错误。