我有一個包含不同服務的SQL表。每個服務都有一些特質(它意味着每一行,在SQL中有不同的列)。例如:NullReferenceException嘗試創建類的數組列表
S1:ID1,A1,B1(ID:INT,一:SMALLINT,B:真)
S2:ID2,A2,B2
...
我希望在c#中有這些服務的列表。
由於某些原因,每列都應該有一些屬性。例如:
對於A1表格S1,我們應該有這些:
a1.type,a1.typical,a1.min
這是我做過什麼:
public class ClsAdvertisement
{
public string type { get; set; }
public double typical { get; set; }
public double min { get; set; }
}
protected void MyFuction()
{
List<ClsAdvertisement[]> services = new List<ClsAdvertisement[]>();
SqlDataReader dr1 = cmd1.ExecuteReader();
if (dr1.HasRows)
{
while (dr1.Read())
{
ClsAdvertisement[] qualities=new ClsAdvertisement[3];
if (dr1.IsDBNull(dr1.GetOrdinal("id")) == false)
{
qualities[0].typical = double.Parse(dr1["id"].ToString());
qualities[0].type = "id";
qualities[0].min = qualities[0].typical;
}
if (dr1.IsDBNull(dr1.GetOrdinal("a")) == false)
{
qualities[1].typical = double.Parse(dr1["a"].ToString());
qualities[1].type = "a";
qualities[1].min = qualities[1].typical - 1.0;
}
if (dr1.IsDBNull(dr1.GetOrdinal("b")) == false)
{
qualities[2].typical = double.Parse(dr1["b"].ToString());
qualities[2].type = "b";
qualities[2].min = qualities[2].typical - 1.0;
}
services.Add(new ClsAdvertisement[] { qualities[0], qualities[1], qualities[2] });
}
}
if (dr1.IsClosed == false) dr1.Close();
}
是這是做這件事的好方法嗎?
如果是的,我得到的錯誤
System.NullReferenceException:對象引用未設置到對象
在線的一個實例:
qualities[0].typical = double.Parse(dr1["id"].ToString());
從我搜索,我知道原因是沒有ClsAdvertisement []來設置典型的。但我不知道如何初始化這個?
請幫幫我。非常感謝。
請注意,我已閱讀此鏈接:「What is a NullReferenceException, and how do I fix it?」。我無法從這個鏈接中得到我的答案。我想知道我的方式是否好,如果是的話,如何初始化,這在鏈接中沒有提及。
實例化數組中的對象。 – 2014-10-08 07:18:55
看看:[什麼是NullReferenceException,我該如何解決它?](http:// stackoverflow。問題/ 4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – 2014-10-08 07:19:06
我已經閱讀過此文。它說我應該初始化這個,並檢查它是否爲空。但它不適合我。它不是null。 ID有一些東西,我應該初始化這個。但我不知道如何。另一個問題是,我的方式是我三歲的好方法嗎?非常感謝 – 2014-10-08 07:22:41