У меня есть таблица в SQL, которая включает в себя различные службы. Каждая служба имеет некоторые качества (это означает, что каждая строка имеет разные столбцы в SQL). Например:NullReferenceException при попытке создать список массива класса
s1: id1, a1, b1 (ID: INT, а: SMALLINT, б: реальная)
s2: id2, a2, b2
...
I хотите иметь список этих служб в 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?". Я не могу получить ответ по этой ссылке. Я хочу знать, хорош ли мой способ или нет, и если да, то как его инициализировать, что не упоминается в этой ссылке.
Мгновентировать объекты в вашем массиве. –
Посмотрите: [Что такое исключение NullReferenceException и как его исправить?] (Http: // stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –
Я читал это раньше. Он сказал, что я должен инициализировать это и проверить, является ли оно нулевым или нет. Но он не работает для меня. Это не null. id имеет что-то в этом, я должен инициализировать это. Но я не знаю, как это сделать. И еще один вопрос в том, что мой путь - хороший способ для того, что я делаю? Огромное спасибо –