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の3つのフィールドから選択しています.(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 に答える