一个小错误,浪费两小时
自我感觉真是低效率!这个是个SQL语句在ACCESS执行的问题,如下:
代码
string strSql = "select top 2000 * from message where receiver='"+UserAccount+"' and sendtime<'"+DateTime.Now+"' and sendtime>'"+DateTime.Now.AddDays(-1)+"'"
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/Chat.mdb");
con.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(strSql,con);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
con.Close();
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/Chat.mdb");
con.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(strSql,con);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
con.Close();
这段代码在dataAdapter.Fill(ds);的时候一直提示“至少一个参数没有被指定值”,又将这段代码放到一个测试页面走了一遍还是没有问题的,百思不得其解,于是到网络上查询,还是得不到解决办法。哎,无奈自己测试了多次都没有想到将语句断点截获到Access中执行,最后才想到这个办法,这一执行不打紧,还让输入datetime值了:
仔细看了语句才知道,原来表中的字段是SendTime,我的查询语句写成datetime了,这么小的错误,耽误了两个小时,教训哪。记一下,鞭笞自己。