C#中运行SQL查询语句时,出现“未处理OleDbException”对话框,提示错误"至少一个参数没有被指定值。"

C#中运行SQL查询语句时,出现“未处理OleDbException”对话框,提示错误"至少一个参数没有被指定值。",实在没找到原因,字段是没错的,复制放到SQL中运行正... C#中运行SQL查询语句时,出现“未处理OleDbException”对话框,提示错误"至少一个参数没有被指定值。",实在没找到原因,字段是没错的,复制放到SQL中运行正常。
private void btnMrjs_Click(object sender, EventArgs e)
{
string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Database\test.mdb";
using (OleDbConnection conn = new OleDbConnection(connStr))
{
conn.Open();
using(OleDbCommand cmd = new OleDbCommand("select sum(DJJE) as '金额' from SxbZcData where datediff(d,'2012-1-3',JsRq)=0", conn))
{
object objResult = cmd.ExecuteScalar();
textboxResult.AppendText(Convert.ToString(objResult));
}
}
}
原来那条SQL是在SQL Server中执行的,所以能正常运行,刚才试了一下ACCESS2007中执行,好象是不能运行。那请问ACCESS中的SQL怎么比较日期呢?
=========================
谢谢大家,终于找到问题了,低级错误,ACCESS2007支持datediff,原来是datediff(d,'2012-1-3',JsRq)的d少了引号,应改为'd'。
展开
 我来答
micro0369
2012-03-14 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4061万
展开全部
access的sql支持datediff 函数 ?
我只是怀疑。

Access 有很多特殊的东西,与标准sql,甚至SQL Server都差别很大,我一般都把语法在Access里执行通过,才敢写到程序里

用单引号把 d 引起来:

datediff('d','2012-1-3',JsRq)=0
追问
终于找到问题了,低级错误,ACCESS2007支持datediff,原来是datediff(d,'2012-1-3',JsRq)的d少了引号,应改为'd'。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式