1

在我使用 Signalr 的 ASP.NET WEB API 应用程序中,我使用以下代码

 using (var reader = command.ExecuteReader())
                    return reader.Cast<IDataRecord>()
                        .Select(x => new CustomerInfo()
                        {
                            CustomerName = x.GetString(0),
                            CustomerAddress = x.GetString(1),

                        }).ToList();

当我在数据库中有 CustomerName 和 CustomerAddress 时,这工作正常。但是当我有任何一列NULL时它失败了。我得到低于运行时错误

Unable to cast object of type 'System.DBNull' to type 'System.String'.

我该如何处理?

4

1 回答 1

1

您可以使用as关键字来执行此操作:x[0] as string

using (var reader = command.ExecuteReader())
    return reader.Cast<IDataRecord>()
                 .Select(x => new CustomerInfo()
                 {
                     CustomerName = x[0] as string,
                     CustomerAddress = x[1] as string,    
                 }).ToList();
于 2013-03-24T20:43:44.237 回答