2014-09-26 3 views
0

У меня есть следующий код:NullReferenceException в formsdata.dll

protected void Page_Load(object sender, EventArgs e) 
    { 

     if(!Page.IsPostBack) 
     { 
      DataTable dt = new DataTable(); 
      dt.Columns.Add("PName"); 
      dt.Columns.Add("Rate"); 
      dt.Columns.Add("Qty"); 
      dt.Columns.Add("Amount"); 
      dt.AcceptChanges(); 
      ViewState["v1"] = dt; 
     } 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     DataTable dt2 = (DataTable)ViewState["vi"]; 
     string sPname = TextBox1.Text; 
     string sRate = TextBox2.Text; 
     string sQty = TextBox3.Text; 
     double d1 = Convert.ToDouble(sRate)* Convert.ToDouble(sQty); 

     DataRow dr = dt2.NewRow(); 
     dr[0] = sPname; 
     dr[1] = sRate; 
     dr[2] = sQty; 
     dr[3] = d1.ToString("0.00"); 
     dt2.Rows.Add(dr); 
     dt2.AcceptChanges(); 
     ViewState["v1"] = dt2; 

     GridView1.DataSource = dt2; 
     GridView1.DataBind(); 

Ошибка здесь:

DataRow dr = dt2.NewRow(); 
An exception of type 'System.NullReferenceException' occurred in Formsdata.dll but was not handled in user code 

Дополнительная информация: Object reference not set to an instance of an object.

После установки значения и нажав на кнопку. Я использую визуальную студию 2013 года, новичок!

+0

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

+0

Возможный дубликат [Что такое исключение NullReferenceException и как его исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –

ответ

2

Ваш ViewState объект, из которого вы получаете DataTable не содержит DataTable.

Вопрос заключается в том, что вы назначая DataTable в ViewState объект, который имеет ключевое v1, но вы к нему доступ из VI. Итак, vi не содержит ничего.

Попробуйте использовать это в первой строке кода обработчика событий нажатия кнопки.

DataTable dt2 = (DataTable)ViewState["v1"]; 
+0

Нет, они оба говорят «v1». –

+0

@JohnSaunders смотрят на самую первую строку обработчика кнопок. 'DataTable dt2 = (DataTable) ViewState [" vi "];'. – Sachin

+0

Мой плохой. Я этого не видел. Я не могу изменить свой голос, если вы не сделаете какое-то редактирование. Дайте мне знать, когда вы это сделаете, и я поднимусь. –

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