数据库连接适配器“数据类型不匹配”
本文关键字:不匹配 数据类型 适配器 数据库连接 | 更新日期: 2023-09-27 18:08:32
我已经使用OleDb成功地建立了到我的访问DB (.mdb)的连接。我遇到了
如果我在SQL命令中使用"where"语句,"标准表达式中的数据类型不匹配。"
错误。如果我删除它,我成功地得到了所有的评论。
任何想法?
我的数据库看起来像这样:
ID (short text) Comment (long text)
431 They_study_math
321 They_study_biology
,我的代码是这样的:
public void auth_group(string group)
{
connDB.Open();
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT Comment FROM groups WHERE ID=431", connDB);
adapter.Fill(ds);
connDB.Close();
DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
listBox1.Items.Add(dr["Comment"].ToString());
}
}
我觉得你的ID
列是一个字符类型,这就是为什么你应该使用单引号,如;
WHERE ID = '431'
我不得不这么说,看起来你的ID
列的正确类型是整数而不是字符。
还使用using
语句来处理您的数据库连接和OleDbDataAdapter
。
您的id字段是字符串。你应该这样写:
public void auth_group(string group){connDB.Open ();DataSet ds = new DataSet();OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT Comment FROM groups WHERE ID='431'", connDB);adapter.Fill (ds);
connDB.Close (); DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
listBox1.Items.Add(dr["Comment"].ToString());
}
}