2012-06-11 2 views
0

Я хочу сохранить значение из таблицы datatbase в array.but, но когда я это делаю, исключение «объект eferance не устанавливает экземпляр объекта», пожалуйста, просмотрите мой код.Как увеличить значение индекса целочисленного массива

.COD Behinde

public DataSet showoption1() 
    { 
     SqlCommand cmd = new SqlCommand("select * from assessmenttest",con); 

     SqlDataAdapter adptr = new SqlDataAdapter(cmd); 

     DataSet ds = new DataSet(); 
     adptr.Fill(ds,"test"); 

     int [] arr=new int[10]; 
     DataTable table=ds.Tables[0]; 
     for(int i=0;i<table.Rows.Count;i++ ) 
     { 
test.Agree[i] =Convert.ToInt32(ds.Tables[0].Rows[i]["option1"]); 

    } 

код бизнес-логики класса слой:

тест общественного класса {

открытые статические INT [] согласен;

}

+0

возможно испытание или test.agree не инициализирована ... но почему вы используете массив? – Reniuz

+0

Вы уверены, что 'Rows [i]' содержит '' option1''? Возможно, вы захотите попробовать выражение 'foreach' вместо этого в элементах строки, чтобы подтвердить, что вы получаете то, что ожидаете. –

ответ

2

test.agree является null.

Вам необходимо поместить новый массив в поле.

1

Где именно вы получаете ошибку, на каком массиве? По внешнему виду это должно быть на соглашении [], которое вы никогда не создаете.

попробовать

public static int[] agree =new int[10]; 

, но я думаю, что вы можете сделать согласуют список, так как вы не знаете, сколько вам нужно

public static List<int> agree = new List<int>; 

затем использование

agree.Add(Convert.ToInt32(ds.Tables[0].Rows[i]["option1"]); 

и вы можете получить к нему доступ так же, как массив

MessageBox.Show(agree[1].ToString()); 
0

Instantiate перед добавлением значений:

SqlCommand cmd = new SqlCommand("select * from assessmenttest", con); 

     SqlDataAdapter adptr = new SqlDataAdapter(cmd); 

     DataSet ds = new DataSet(); 
     adptr.Fill(ds, "test"); 

     int[] arr = new int[10]; 
     DataTable table = ds.Tables[0]; 
     test.agree = new int[table.Rows.Count]; 
     for (int i = 0; i < table.Rows.Count; i++) 
     { 

      test.agree[i] = Convert.ToInt32(ds.Tables[0].Rows[i]["option1"]); 
     } 
Смежные вопросы