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

本文关键字:不匹配 数据类型 适配器 数据库连接 | 更新日期: 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());
    }
}