C#中查询数据库中的日期字段

我要按日期查询出我的日记表中的详细内容,前二个字段都是Date类型的,我用的代码如下,运行报错,但我不知道咋改,请各位高手帮帮忙。
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(@"");
//创建数据库连接对象、数据库连接字符串
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from thing where date = 'dateTimPicker1.Value'";
SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
string xierushijian = reader.GetString(1);
string dotime = reader.GetString(2);
string thingscontent = reader.GetString(3);
textBox3.Text = ("写入时间:" + xierushijian + "做此事的时间:" + dotime + "事项内容:" + thingscontent);
}
}
我的是winform,不能用response.write()吧

cmd.CommandText = "select * from thing where date = '"+dateTimPicker1.Value+"'";这么改吧

-----补充:
date在数据库中是关键字,这样试试
cmd.CommandText = "select * from thing where [date] = '"+dateTimPicker1.Value+"'";
-------------补充2:
从字符型向datetime转换失败,说明是从string转向datetime的,那么while里面就可以排除了,
问题应该在这里date='"+dateTimPicker1.Value+"'"
你把dateTimPicker1.Value的值用
response.write("<Script>alert('"+dateTimPicker1.Value+"')</Script>");
输出看看,是不是符合datetime型的就清楚了。

------------那就用Messagebox.Show(dateTimPicker1.Value,"show",Messageboxbuttons.YesNo);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-07
string xierushijian = reader.GetString(1);
string dotime = reader.GetString(2);
string thingscontent = reader.GetString(3);
不要123,改成012试试
第2个回答  2010-06-07
cmd.CommandText = "select * from thing where date = '"+dateTimPicker1.Value+"'";

这一句改为
cmd.CommandText = "select * from thing where date = '"+dateTimPicker1.Text+"'";

因为dateTimPicker1.Value的值为dateTime格式,不能直接用+来个字符串格式相加,所以拼sql语句时,要用日期的字符串格式。
第3个回答  2010-06-07
这个返回的似乎是个数组吧...
xierushijian=reader[0].ToString();
tingsconetent=reader[1].ToString();
相似回答