我正在尝试根据特定的选择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数据库和我从三个字段中选择的表,PersonId是AutoNumber类型,PersonName是Text类型,StatusIdFrn是数据类型Number。(drpPerson是一个DropDownList控件)
答案 0 :(得分:5)
改变这个:
"SELECT * FROM [Person] WHERE [StatusIdFrn] = '" + statusID + "'"
对此:
"SELECT * FROM [Person] WHERE [StatusIdFrn] = " + statusID + ""
由于[StatusIdFrn]是数字,您需要丢弃单引号,因为它们表示文本类型。