0

我有一个下拉列表,我通过将存储在我的数据库中的日期时间值提取到 AccessDataSource 中来填充它。因此,当我运行我的 asp.net 程序时,我得到以下示例:23-DEC-12 12:00:00 AM。这是我在 AccessDataSource 中使用的查询:

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();
}

谁能告诉我我做错了什么!提前致谢。

4

3 回答 3

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);

这是错误的。因为SelectedItemTextand的集合,value你应该使用 text 或 value

您的代码应如下所示

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

用这个替换你的 OleDbcommand 语句:

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