我正在使用sql server compact 4而且我遇到了一些麻烦。我有一个名为Counter的表,其中我存储了一些信息0-2,它检查该表中的今天日期,获取CounterValue并将它们分别放入一个变量0,1,2并作为计数器出现。第二天,新数据将有一个新日期,并在每个变量中显示相同的值。
到目前为止一切顺利,如果我按如下方式运行SQL查询
SELECT * FROM Counter WHERE Dateis = '21-05-2014'
它呈现正确的值,但是当我尝试从剃刀中选择时,它什么也没有被执行,它正在驱使我疯狂。
var DateNow = DateTime.Now.ToString("dd-MM-yyyy");
var CaseCounter = db.Query("SELECT * FROM Counter WHERE Dateis ='DateNow'");
DateNow的值为21-05-2014,与我测试的sql查询相同,但它什么也没做。没有数据显示。如果我删除WHERE数据将显示但是然后我显示所有日期数据而不是当前日期。
我在这里错过了什么吗?
提前致谢。
答案 0 :(得分:1)
您需要实际修补变量的值,而不是变量的名称:
var DateNow = DateTime.Now.ToString("dd-MM-yyyy");
var CaseCounter = db.Query("SELECT * FROM Counter WHERE Dateis = '" + DateNow + "'");
您的原始代码实际上是将此命令提交给DB:
SELECT * FROM Counter WHERE Dateis = 'DateNow'
因此,在连接结束引号之前,您需要使用双引号,然后是连接运算符(+)然后是变量来关闭字符串。