条件表达式中的数据类型不匹配

Ari*_*ule 1 c# asp.net ms-access

我试图根据特定的选择ID填充数据集,但得到错误

Data type mismatch in criteria expression.
Run Code Online (Sandbox Code Playgroud)

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

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();
Run Code Online (Sandbox Code Playgroud)

建议也许就如何克服这个问题.

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

Mat*_*nan 5

改变这个:

"SELECT * FROM [Person] WHERE [StatusIdFrn] = '" + statusID + "'"
Run Code Online (Sandbox Code Playgroud)

对此:

"SELECT * FROM [Person] WHERE [StatusIdFrn] = " + statusID + ""
Run Code Online (Sandbox Code Playgroud)

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