我使用OleDb成功设置了与我的访问数据库(.mdb)的连接。我遇到了
"标准表达式中的数据类型不匹配。"
错误,如果我使用"其中" SQL命令中的语句。如果我删除它,我会成功获取所有注释。
有什么想法吗?
我的数据库看起来像这样:
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());
}
}
答案 0 :(得分:1)
我觉得你的ID
列是一个字符类型,这就是你应该用单引号来使用它的原因;
WHERE ID = '431'
我必须这样说,看起来ID
列的正确类型是整数而不是字符。
还可以使用using
statement来处理数据库连接和OleDbDataAdapter
。
答案 1 :(得分:0)
你的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());
}
}