C# 如果字符串默认为空,为什么我无法强制转换类型为';System.DBNull';输入';System.String';。?
我见过类似的线程,比如解决方案是三级if 我的问题是,如果字符串可以为空,为什么还要出现这样的错误 我正在使用ado.net读取access中文本列的值。 每当有一行的文本列为空时,我都会收到该错误 罪魁祸首:C# 如果字符串默认为空,为什么我无法强制转换类型为';System.DBNull';输入';System.String';。?,c#,ms-access,ado.net,nullable,C#,Ms Access,Ado.net,Nullable,我见过类似的线程,比如解决方案是三级if 我的问题是,如果字符串可以为空,为什么还要出现这样的错误 我正在使用ado.net读取access中文本列的值。 每当有一行的文本列为空时,我都会收到该错误 罪魁祸首: while (dr.Read()) { UserList.Add(new UserInfo() { . DestributionGroup = (string)dr["Destribution Group"] .
while (dr.Read())
{
UserList.Add(new UserInfo()
{
.
DestributionGroup = (string)dr["Destribution Group"]
.
}
}
class UserInfo
{
.
public string DestributionGroup;
.
}
编辑:
换句话说,我必须将我从数据库中读取的所有字符串转换成类似的行
return (accountNumber == DBNull.Value) ? string.Empty : accountNumber.ToString ()
没有别的办法了吗?因为
null!=DBNull.Value
但您可以使用以下方法检查DataReader
中的值是否为空:
因为
null!=DBNull.Value
但您可以使用以下方法检查DataReader
中的值是否为空:
如果您不介意在dr[“Distribution Group”]为DBNull时将Distribution Group设置为null,则可以使用此选项。值:
DestributionGroup = dr["Destribution Group"] as string;
如果您不介意在dr[“Distribution Group”]为DBNull时将Distribution Group设置为null,则可以使用此选项。值:
DestributionGroup = dr["Destribution Group"] as string;
因为
null!=System.DBNull
因为null!=System.DBNull