access条件查询问题,求大侠给予指点,谢谢
本帖最后由 nucjankk 于 2013-08-06 20:05:11 编辑
数据库中有四个字段,其中反应釜、温度值为数值类型,日期和时间为文本类型,
我想按反应釜数值 和日期查询,我的代码如下:
private void kettleInquire()
{
strDate = this.dtpDate.Value.ToShortDateString();//获得日期datetimepicker
intNum = int.Parse(cbxNum.Text);//获得反应釜数值
string strSQL = "select * from tb_Data where 日期='" + strDate + "' and 反应釜='"+intNum+"'";
DataSet ds = dataoperate.getDs(strSQL, "tb_Data");
dataGridView1.DataSource = ds.Tables["tb_Data"];
}
执行后,程序提示,数据类型不匹配。
------解决方案--------------------你数据库中的日期为文本类型,但是你穿进去的值为datetime类型,在sql位置设置断点应该可以看到你的?strDate变量大概是"jun wed 8:30:36 2013/08/06"样子的。。所以当运行的时候类型不匹配。建议解决办法数据库改成date类型,或者将?strDate变量改成跟数据库日期存储一致的格式,然后转换成字符串进行查询。。
另外intNum = int.Parse(cbxNum.Text);如果前台没有验证,cbxNum控件中用户不小心输入了非数字进行查询,你的程序会报错
------解决方案--------------------
string strSQL = "select * from tb_Data where 日期=#'" + strdate+ "'# and 反应釜='"+intNum+"'";