DB连接适配器“数据类型不匹配”

时间:2014-06-14 13:37:46

标签: c# sql adapter

我使用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());
        }
    }

2 个答案:

答案 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());
    }
}