2016-07-08 236 views
1
if ((booking.BookingsVoucher[i].RedemptionReloc != null)). 

我在这里得到异常。 RedemptionReloc具有以dBASE空值抛出'System.Data.StrongTypingException'类型的异常C#

Redemption TimeSttmp 
NULL 
Redemption Reloc 
NULL 
RedeemedCurrencyC 
NULL 
Redeemed Amo_ 
NULL 

使用DBNULL.value.equal(booking.BookingsVoucher [I] .RedemptionReloc)尝试。但这也引起了极大的关注。 这里是例外,登录加入凭证详细

例外:System.Data.StrongTypingException:在表中的值列'RedemptionReloc“BookingsVoucher”是为DBNull。 ---> System.InvalidCastException:无法将类型为“System.DBNull”的对象转换为键入“System.String”。

+0

我们需要更多信息。 'BookingsVoucher'是某种类型的集合。这是什么类型,它是如何定义的? 你用什么从数据库中获取数据到这种类型?带有数据表的ADO.NET?实体框架?定制解决方案? – seangwright

回答

3

enter image description here

更改NullValue属性项为零或为空和你做相应的检查。

DataSet1 ds1 = new DataSet1();

 SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ContosoUniversity2ConnectionString"].ConnectionString); 

     using (cn) 
     { 
      using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Department", cn)) 
      { 
       adapter.Fill(ds1.Department); 
       foreach (DataSet1.DepartmentRow row in ds1.Department.Rows) 
       { 
        if (row.Name != null) 
        { 
         Console.WriteLine(row.Name); 
        } 

       } 
      } 
     } 
+0

似乎像实体框架中的错误 – makdu

+0

您使用哪种数据访问技术强类型数据集或EF? –

相关问题