2013-06-11 4 views
-2

Ссылка на объект не установлена ​​в экземпляр объекта.ошибка при удалении строки в gridview через 3 уровень

Это ошибка, которую им получать в то время как я пытаюсь удалить .. грести с моей точки зрения сетки

это в .. page_ нагрузки

gvDetails.DataSource =myBl.DeleteAllCountry(int.Parse(gvDetails.SelectedRow.ToString())); 

на уровне доступа к данным

public DataTable DeleteCountry(int country_id) 
    { 
     DataTable dltcontry = new DataTable(); 
     SqlConnection con = new SqlConnection(@"Data Source=a8-pc\sqlexpress;Integrated Security=True"); 
     SqlDataAdapter da; 
     try 
     { 
      SqlCommand cmd = new SqlCommand(); 
      cmd.connection= con; 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.CommandText = "sp_DeleteCountry"; 
      con.Open(); 
      da = new SqlDataAdapter(cmd); 
      cmd.Parameters.AddWithValue("country_id", @country_id); 
      cmd.ExecuteNonQuery(); 
      da.Fill(dltcontry); 
      con.Close(); 
     } 

и в бизнес-слое код подобен

public DataTable DeleteAllCountry(int country_id) 
    { 
    return mydtLayer.DeleteCountry(country_id); 
    } 
+0

Пожалуйста, отформатируйте свой вопрос правильно и используйте надлежащий английский .. это не SMS .. – Asha

+0

У вас есть хранимая процедура для удаления, и вы можете удалить, вызвав 'ExecuteNonQuery', но почему вы снова используете его для получения данных? – Damith

+0

Пожалуйста, сформулируйте ваш вопрос более четко. Это исключение выглядит как NullPointer-Exception. Обычно отладочный вывод содержит номер строки, в которой произошло исключение, включая трассировку стека. Используйте этот номер строки для дальнейшего изучения ошибки. –

ответ

0

Первое, что нужно исправить, вам необходимо установить соединение с вашей командой

cmd.Connection =con; 

или в конструкторе как ниже

SqlCommand command = new SqlCommand(
      queryString, connection); 

Другая проблема заключается в попытке преобразовать выбранный gvDetails.SelectedRow в целое значение

проверить gvDetails.selectedRows.Count, прежде чем вы получите значение выбранной строки

если у вас есть выбор, то вы можете получить мобильный Вал вашей колонки COUNTRY_ID ниже

gvDetails.SelectedRow.cells("country_id").Text 

теперь вы можете преобразовать это значение INT с помощью int.TryParse и если успех отправить в вашу функцию BL удалить запись

+0

сделано это ... но как решить следующий все еще получение эта ошибка – user2473216

+0

какой line? debug и проверить, какая строка и какой объект равна нулю – Damith

+0

gvDetails.DataSource = myBl.DeleteAllCountry (int.Parse (gvDetails.SelectedRow.ToString())); – user2473216

 Смежные вопросы

  • Нет связанных вопросов^_^