1

我正在尝试根据特定的选择 ID 填充数据集,但出现错误

Data type mismatch in criteria expression.

不完全确定为什么我有这个错误。

conn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;
                                Data Source =" + Server.MapPath("App_Data\\HarryPothead.mdb"));
        conn.Open();

        DataSet ds = new DataSet();

        OleDbDataAdapter dba = new OleDbDataAdapter("SELECT * FROM [Person] WHERE [StatusIdFrn] = '" + statusID + "'", conn);
        dba.Fill(ds, "PersonName");
        DataTable dt = ds.Tables["PersonName"];

        drpPerson.DataSource = ds.Tables[0];
        drpPerson.DataTextField = "PersonName";
        drpPerson.DataBind();

        conn.Close();

关于如何克服这一点的建议。

我从中选择的数据库是一个 Access 数据库,我从三个字段中选择表,即 AutoNumber 类型的 PersonId、Text 类型的 PersonName 和 Number 数据类型的 StatusIdFrn。(drpPerson 是 DropDownList 控件)

4

1 回答 1

5

改变这个:

"SELECT * FROM [Person] WHERE [StatusIdFrn] = '" + statusID + "'"

对此:

"SELECT * FROM [Person] WHERE [StatusIdFrn] = " + statusID + ""

由于 [StatusIdFrn] 是数字,因此您需要丢弃单引号,因为它们表示文本类型。

于 2012-11-30T15:37:03.177 回答