【发布时间】:2013-05-02 10:48:54
【问题描述】:
我有类 SellStatement
public class SellStatement
{
public long billNo
public DateTime paymentDate;
public List<string> ProductName;
public List<double> quantity;
public List<double> ratePerQuantity;
}
当我尝试访问 GetSaleDetails 函数时
public Exception GetSaleDetails(List<SellStatement> lss1,string query)
{
try
{
for (int i = 0; i < lss1.ToArray().Length; i++)
{
query = "select * from [product details] where [bill no]=@billno";
com = new SqlCeCommand(query, con);
con.Open();
com.Parameters.AddWithValue("@billno",lss1[i].billNo);
sdr = com.ExecuteReader();
while (sdr.Read())
{
lss1[i].ProductName.Add(sdr.GetString(1));//Exception line
lss1[i].quantity.Add(sdr.GetDouble(2));
lss1[i].ratePerQuantity.Add(sdr.GetDouble(3));
}
}
con.Close();
return null;
}
catch (Exception e)
{
con.Close();
return e;
}
}
在lss1[i].ProductName.Add(sdr.GetString(1)); 出现空引用异常。我认为错误可能是因为sdr.GetString(1) 中的空值,但我检查了它有一些值。我的朋友告诉我,你不能像这样更改函数参数值所以我尝试像这样将一个列表复制到另一个列表。
List<SellStatement> lss1 = new List<SellStatement>() ;
lss1.AddRange(lss);
但这对我没有帮助。添加元素时我无法弄清楚出了什么问题。
【问题讨论】:
-
你需要学习如何处理异常...
-
请告诉我这段代码有什么问题。
-
bash.d 此函数仅用于测试,是的,我在执行此之前检查了我的查询值,它返回有效值。
标签: c# .net list exception nullreferenceexception