0

データベースに格納されている日時の値を AccessDataSource にフェッチして入力したドロップダウンリストがあります。したがって、asp.net プログラムを実行すると、たとえば次のようになります。23-DEC-12 12:00:00 AM。AccessDataSource で使用しているクエリは次のとおりです。

SELECT DISTINCT date_time FROM temperature

今私がしたいことは、このドロップダウンリストで選択した値 (datetime 値) を取得し、それを SQL クエリの条件として使用することです。ここに私が修正しようとしているコードがあります:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    cnstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\user\\Desktop\\Thermal Analysis\\thermal.accdb";
    OleDbConnection cn = new OleDbConnection(cnstr);
    cn.Open();
    OleDbCommand cmd = new OleDbCommand("SELECT ID,temp FROM temperature where date_time=#'" + DropDownList1.SelectedItem + "'# ", cn);
    OleDbDataReader dr = cmd.ExecuteReader();
}

誰が私が間違っているのか教えてください!前もって感謝します。

4

3 に答える 3

0

OleDbcommandステートメントを次のように置き換えます。

OleDbCommand cmd = new OleDbCommand("SELECT ID,temp FROM temperature where date_time=#'" + DropDownList1.SelectedValue + "'# ", cn);
于 2012-12-26T15:52:17.580 に答える
0

使用する

DropDownList1.SelectedValue

ドロップダウン リストのを取得します。値は、SQL ステートメントで使用するものです。また、コメントで DJ Kraze が言及しているように、パラメーター化されたクエリの使用を検討してください。

于 2012-12-26T15:44:44.903 に答える
0

あなたが使用した

 OleDbCommand cmd = 
      new OleDbCommand("SELECT ID,temp FROM temperature where date_time=#'" 
      + DropDownList1.SelectedItem + "'# ", cn);

これは間違っています。andSelectedItemのコレクションであるため、テキストまたは値を使用する必要がありますTextvalue

コードは次のようになります

OleDbCommand cmd = new OleDbCommand("SELECT ID,temp FROM temperature where date_time='" + DropDownList1.SelectedValue + "'", cn);
于 2012-12-26T15:58:21.353 に答える