2016-07-15 4 views
0

Я получаю сообщение об ошибке. Как я могу избежать этого? У кого-нибудь есть идеи? Примечание: Чем больше я новичок :)System.NullReferenceException: Ссылка на объект не установлена ​​в экземпляр объекта. C#

queryStringId.Text = Request.QueryString["ID"].ToString(); 
     SqlCommand komut = new SqlCommand(); 
     baglanti.Open(); 
     komut.Connection = baglanti; 
     komut.CommandText = "SELECT * FROM SatilikDaire where ID=" + queryStringId.Text; 
     komut.ExecuteNonQuery(); 
     SqlDataReader dr = komut.ExecuteReader(); 
+0

Возможно, Request.QueryString ["ID"] имеет значение –

+0

. Пожалуйста, изучите [подготовленные заявления] (https://en.wikipedia.org/wiki/Prepared_statement). Это широко доступно для [SQL injection] (https://en.wikipedia.org/wiki/SQL_injection). – Phylogenesis

ответ

1

Просто установить контрольную точку и проверить который элемент является null. Либо Request - null, либо QueryString["ID"] - null или queryStringId - null.

Затем, как только вы определили элемент , не забудьте его не null. Если вы не знаете, как это сделать, вернитесь к основам программирования.

+0

Да, вы правы. Я узнал немного больше основ. Спасибо за ваш ответ и ваши предложения –

+0

Я сделал следующие методы. Как неправильно я не знаю, как true 'if (Request.QueryString [" ID "] == null) { Label1.Text = (" kayıt yok "); } else { queryStringId.Text = Request.QueryString ["ID"]. ToString(); ............ } еще { veriYok.Text = "Вери Yok :("; } ' –

+0

@ Enverköseler Лоос хорошо, но это лучше хранить значение' Request .QueryString ["ID"] 'в переменной (например,' var id = Request.QueryString ["ID"] ') и использовать эту переменную позже. Это позволяет избежать извлечения * ID * дважды и легче отлаживать, как вы можете например, установить условия для переменной. Также, пожалуйста, примите ответ, если проблема будет решена. – ViRuSTriNiTy

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