SELECT *
FROM [MyTable]
WHERE ( ( DATEPART(dw, [Time]) + @@DATEFIRST + 6 ) % 7 <> 6
AND ( ( DATEPART(dw, [Time]) + @@DATEFIRST + 6 ) % 7 <> 5
OR DATEPART(HOUR, [Time]) < 22
)
AND ( ( DATEPART(dw, [Time]) + @@DATEFIRST + 6 ) % 7 <> 0
OR CAST([Time] AS TIME) >= '22:00'
)
);
答案 0 :(得分:0)
将Session["LoginType"]
更改为Session["LoginType"].ToString()
答案 1 :(得分:0)
我建议将if
- 语句更改为:
if (Session["UserName"] != null &&
(Session["LoginType"] as string == "Admin" ||
Session["LoginType"] as string == "Employee")
)
Session[string key]
会返回object
。如果您使用object
将==
与某些内容进行比较,则会执行参考比较。字符串文字(例如"Admin"
)将永远不会像该对象一样具有相同的引用,即使此对象 是一个字符串。
通过将object
转换为string
,编译器知道它必须调用string
的相等方法,它们比较字符串的内容而不是它们的引用
当然,您也可以直接演员((string)Session["LoginType"]
)或致电ToString()
。但是,如果(出于某些奇怪的原因)返回对象是而不是字符串,则第一个将抛出异常。如果(出于某种奇怪的原因)值仍为NullReferenceException
,则第二个将抛出null
。
答案 2 :(得分:0)