我正在使用C#SELECT RE_Auxiliary.dbo.ufnGetOpenNotificationValue
(1,'2014-07-31','2013-09-01','2014-08-31') +
RE_Auxiliary.dbo.ufnGetOpenNotificationValue
(2,'2014-07-31','2013-09-01','2014-08-31') +
RE_Auxiliary.dbo.ufnGetOpenNotificationValue
(3,'2014-07-31','2013-09-01','2014-08-31')
方法从Access数据库中读取数据。我在Access表中有一个字符串字段,在我的查询中,我使用下面的代码将其转换为bool:
Incorrect syntax near ','
上面的语句在数据阅读器中返回ExecuteReader
值。按照
它应该返回IIF(IsXYZ = 'True',CBool(1=1),CBool(1=0)) AS IsXYZ
,我在这里缺少什么?
答案 0 :(得分:0)
也许试试这个。
CBool(IIf(IsXYZ = 'True',-1,0)) AS IsXYZ
值得一提的是,Access中的Yes / No(True / False)字段被转换为SQL Server中的位字段(如果已转换),并将转换为-1/0为True / False。 BTW 0始终为False且ANY"非零"数字被认为是真的,所以9087也是真的!
答案 1 :(得分:0)
我在这里错过了什么?
我不认为你错过任何东西。我使用System.Data.OleDb
,System.Data.Odbc
重新创建了您的问题,并使用DAO.Recordset
在Access中重新创建了问题。似乎CBool
将在VBA语句中返回Boolean
,但它将在Access SQL语句中返回Integer
。 :(