VB If 语句在 SQL 查询中
VB If statement in SQL query
我正在将一个旧的定时脚本从 VB 转换为 C#,我需要帮助来理解 If
语句的目的。
我需要帮助的代码是:
... And If(cp.JobTitle, String.Empty) = String.Empty And ...
这是 SQL 查询的一部分,数据库中的 cp.JobTitle
是可为空的字符串字段。
感谢任何帮助!
不,那不是 SQL 查询的一部分。也许它是 LINQ 查询的一部分或构建 SQL 查询的某些代码,但与那里的 SQL 无关。
无论如何,VB 代码正在使用带有两个操作数的 If
运算符。相当于这个 VB:
If(cp.JobTitle, String.Empty) = String.Empty
这是 C# 吗:
(cp.JobTitle ?? string.Empty) == string.Empty
是说要使用cp.JobTitle
,除非是Nothing
,在这种情况下使用String.Empty
。编写功能等效 VB 的更好方法是:
String.IsNullOrEmpty(cp.JobTitle)
我希望与之等效的 C# 很明显。
顺便说一句,VB 代码确实应该使用 AndAlso
而不是 And
。如果您在 C# 中使用 &&
而不是 &
,几乎每个人都会这样做,那么您应该在 VB 中使用 AndAlso
而不是 And
。在这两种情况下,如果您明确不想要 short-circuiting.
,则只应使用另一个
我正在将一个旧的定时脚本从 VB 转换为 C#,我需要帮助来理解 If
语句的目的。
我需要帮助的代码是:
... And If(cp.JobTitle, String.Empty) = String.Empty And ...
这是 SQL 查询的一部分,数据库中的 cp.JobTitle
是可为空的字符串字段。
感谢任何帮助!
不,那不是 SQL 查询的一部分。也许它是 LINQ 查询的一部分或构建 SQL 查询的某些代码,但与那里的 SQL 无关。
无论如何,VB 代码正在使用带有两个操作数的 If
运算符。相当于这个 VB:
If(cp.JobTitle, String.Empty) = String.Empty
这是 C# 吗:
(cp.JobTitle ?? string.Empty) == string.Empty
是说要使用cp.JobTitle
,除非是Nothing
,在这种情况下使用String.Empty
。编写功能等效 VB 的更好方法是:
String.IsNullOrEmpty(cp.JobTitle)
我希望与之等效的 C# 很明显。
顺便说一句,VB 代码确实应该使用 AndAlso
而不是 And
。如果您在 C# 中使用 &&
而不是 &
,几乎每个人都会这样做,那么您应该在 VB 中使用 AndAlso
而不是 And
。在这两种情况下,如果您明确不想要 short-circuiting.