2013-03-24 27 views
1

在我的ASP.NET Web API應用程序,它使用Signalr我使用下面的代碼無法施展的DBNull串

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

         }).ToList(); 

這是工作正常,當我在數據庫中有兩個客戶名稱和CustomerAddress。但是當我有任何一列NULL時失敗。我正在低於運行時間錯誤

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

我該如何處理?

回答

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(); 
相關問題