以下转换不起作用。
错误:“只有赋值、调用、递增、递减和新对象可以用作语句”
VB.net
objUser.Email = IIf(IsDBNull(drow("Email")), "", drow("Email"))
C#
objUser.Email == (Information.IsDBNull(drow("Email")) ? "" : drow("Email"));
我在 C# 中需要它。有任何想法吗??
以下转换不起作用。
错误:“只有赋值、调用、递增、递减和新对象可以用作语句”
VB.net
objUser.Email = IIf(IsDBNull(drow("Email")), "", drow("Email"))
C#
objUser.Email == (Information.IsDBNull(drow("Email")) ? "" : drow("Email"));
我在 C# 中需要它。有任何想法吗??
在 C#=
中是赋值运算符和==
比较运算符
删除==
并替换为=
。
假设drow
是DataRow
objUser.Email = (drow.IsNull("Email") ? String.Empty : drow["Email"].ToString());
?:
是三元运算符,它总是返回一个值。在您的情况下,该值被分配给objUser.Email
.
您在 C# 变体中使用相等运算符而不是赋值运算符。更改为==
,=
因为您想要的是分配。
objUser.Email = (Information.IsDBNull(drow("Email")) ? "" : drow("Email"));
您不小心使用了比较运算符而不是赋值运算符。
objUser.Email == (Information.IsDBNull(drow("Email")) ? "" : drow("Email"));
应该是,因为您没有进行比较,所以它是一项任务。
objUser.Email = (Information.IsDBNull(drow("Email")) ? "" : drow("Email"));
尝试这个:
objUser.Email = (DBNull.Value == drow("Email")) ? "" : drow("Email"));
请参阅 DbNull 的文档- 您将在其中找到示例:
来自 MSDN
private string AddFieldValue(string label, DataRow row,
string fieldName)
{
if (! DBNull.Value.Equals(row[fieldName]))
return (string) row[fieldName] + " ";
else
return String.Empty;
}