gpt4 book ai didi

c# - ASP.NET 站点在无法将 DBNull.Value 转换为类型 'System.Guid' 时崩溃

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:13 27 4
gpt4 key购买 nike

我有一个崩溃的 ASP.NET 应用程序,我无法在本地重现该问题。当我使用 DebugDiag 打开故障转储文件时,我看到了以下异常的许多实例。

Cannot cast DBNull.Value to type 'System.Guid'. Please use a nullable type. System.Data.DataRowExtensions+UnboxT`1[[System.Guid, mscorlib]].ValueField(System.Object)
System.Data.DataRowExtensions.Field[[System.Guid, mscorlib]](System.Data.DataRow, System.String)
Extension.FieldSub[[System.Guid, mscorlib]](System.Data.DataRow, System.String)

下面是堆栈跟踪中的应用程序代码。我想知道 LINQ 后台线程是否有可能导致崩溃。如果它是 LINQ 后台线程,数据库和 Web 应用程序如何处理这个问题?看起来它会继续运行一段时间,但随着这些异常的堆积,它最终会崩溃。

public static T FieldSub<T>(this DataRow row, string columnName)
{
object result = null;
try
{
result = row.Field<T>(columnName);
}
catch {}

if (result == null)
{
result = default(T);
}
return (T)result;
}

最佳答案

你需要验证数据是否为空,试试这个:

result = row.IsNull(columnName) ? default(T) : row.Field<T>(columnName);

关于c# - ASP.NET 站点在无法将 DBNull.Value 转换为类型 'System.Guid' 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32552235/

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