2012-12-26 23 views
0

我有一個下拉列表,我通過獲取存儲在我的數據庫中的日期時間值填充到AccessDataSource中填充。所以當我運行我的asp.net程序時,我會得到以下例子:23-DEC-12 12:00:00 AM。 這裏是我使用的的AccessDataSource查詢:使用從DropDownList中選擇的日期時間值,並在SQL查詢條件中使用它

SELECT DISTINCT date_time FROM temperature 

現在我想要做的就是把這個下拉列表選擇的值(時間值),並用它作爲一個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(); 
} 

任何人都可以告訴我我做錯了什麼!提前致謝。

+0

問題是什麼?你有異常嗎?結果不是你所期望的嗎? – mellamokb

+1

Zahi如何使用參數化查詢..你也沒有做任何事情與這行後的Dr OleDbDataReader dr = cmd.ExecuteReader();你想用SelectedValue做什麼..? – MethodMan

+0

我kraze ..我只是把代碼的relavent部分張貼在這裏:) –

回答

0

使用

DropDownList1.SelectedValue 

要獲得下拉列表的。該值是您想要在SQL語句中使用的值。另外,請查看DJ Kraze在評論中提到的參數化查詢。

0

與此更換您的OleDbCommand聲明:

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

訪問需要'#'符號當做選擇的值如日期 – MethodMan

+0

如此愚蠢的我....抱歉..編輯。 。非常感謝:-D – Srinivas

0

您已經使用

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

這是不對的。由於SelectedItemTextvalue集合,要麼你應該使用文本或值

你的代碼應該如下

OleDbCommand cmd = new OleDbCommand("SELECT ID,temp FROM temperature where date_time='" + DropDownList1.SelectedValue + "'", cn); 
相關問題