gpt4 book ai didi

c# - 无法将类型为 'System.DBNull' 的对象转换为类型 'System.String`

转载 作者:IT王子 更新时间:2023-10-29 03:36:41 25 4
gpt4 key购买 nike

我的应用程序出现了上述错误。这是原始代码

public string GetCustomerNumber(Guid id)
{
string accountNumber =
(string)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidmyApp,
CommandType.StoredProcedure,
"GetCustomerNumber",
new SqlParameter("@id", id));
return accountNumber.ToString();
}

我替换为

public string GetCustomerNumber(Guid id)
{
object accountNumber =
(object)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidCRM,
CommandType.StoredProcedure,
"spx_GetCustomerNumber",
new SqlParameter("@id", id));
if (accountNumber is System.DBNull)
{
return string.Empty;
}
else
{
return accountNumber.ToString();
}
}

有没有更好的解决方法?

最佳答案

通过一个简单的通用函数,您可以很容易地做到这一点。只需这样做:

return ConvertFromDBVal<string>(accountNumber);

使用函数:

public static T ConvertFromDBVal<T>(object obj)
{
if (obj == null || obj == DBNull.Value)
{
return default(T); // returns the default value for the type
}
else
{
return (T)obj;
}
}

关于c# - 无法将类型为 'System.DBNull' 的对象转换为类型 'System.String`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com