2015-10-27 2 views
1

В настоящее время я работаю над системой с помощью ASP.NET WebForms и у меня быть_наст этот код на одной моей странице:ASP.NET WebForms Таблица NullException

namespace mypms.View 
{ 
    public partial class Reports : System.Web.UI.Page 
    { 
     private string truck_id = null; 

     MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 

     protected void Page_Load(object sender, EventArgs e) 
     { 

      truck_id = this.Request.QueryString["u"] != null ? this.Request.QueryString["u"] : Session["truck_id"] != null ? Session["truck_id"].ToString() : ""; 
      connectDB(); 
     } 

     private void connectDB() 
     { 
      try 
      { 
       conn.Open(); 

       string selectUserQuery = @"SELECT * FROM thesis.joborder as jo inner join thesis.jobordermaterials as jom ON jom.jobID = jo.jobId Where jom.truck_id = '" + truck_id + "'"; 
       MySqlCommand cmd = new MySqlCommand(selectUserQuery, conn); 

       foreach (DbDataRecord rowData in cmd.ExecuteReader()) 
       { 
        populateNewTableRow(rowData); 
       } 
      } 
      catch (MySqlException ex) 
      { 
       System.Diagnostics.Debug.WriteLine("ERROR: " + ex.ToString()); 
      } 
      finally 
      { 
       conn.Close(); 
      } 
     } 

     private void populateNewTableRow(DbDataRecord rowData) 
     { 
      TableRow tr = new TableRow(); 

      TableCell cell2 = new TableCell(); 
      cell2.Text = rowData.GetInt32(rowData.GetOrdinal("jobId")).ToString(); 
      tr.Cells.Add(cell2); 

      TableCell cell3 = new TableCell(); 
      cell3.Text = rowData.GetString(rowData.GetOrdinal("odometerReading")).ToString(); 
      tr.Cells.Add(cell3); 

      TableCell cell4 = new TableCell(); 
      cell4.Text = rowData.GetString(rowData.GetOrdinal("description")).ToString(); 
      tr.Cells.Add(cell4); 

      TableCell cell5 = new TableCell(); 
      cell5.Text = rowData.GetInt32(rowData.GetOrdinal("quantity")).ToString(); 
      tr.Cells.Add(cell5); 

      TableCell cell6 = new TableCell(); 
      cell6.Text = rowData.GetString(rowData.GetOrdinal("remarks")).ToString(); 
      tr.Cells.Add(cell6); 

      TableCell cell7 = new TableCell(); 
      cell7.Text = rowData.GetString(rowData.GetOrdinal("mechanic")).ToString(); 
      tr.Cells.Add(cell7); 

      tbl_MaitenanceRecord.Rows.Add(tr);// THIS (Null Reference Exception) 
     } 
} 

Я получаю сообщение об ошибке System.NullReferenceException: Object reference not set to an instance of an object. на этой линии

tbl_MaitenanceRecord.Rows.Add(tr);

Я полностью уверен, что мои коды верны. Что может быть причиной этого Null Reference Exception? Заранее спасибо

+1

Is tbl_MaitenanceRecord null? – User2012384

+1

Можете ли вы также опубликовать свою страницу разметки, где находится tbl_MaitenanceRecord? – User2012384

+1

Где пользователь? Tbl_MaitenanceRecord? – Imad

ответ

2

Я думаю, что лучше всего использовать метод databind на вашем столе. Проверьте в отладчике, что такое rowData. Ваша проблема может возникнуть, если один из ваших объектов в верхнем вызове имеет значение null. Проверьте стек вызовов и проверьте каждый объект, привязанный к вашей таблице, потому что, как я уже сказал, это может быть проблемой. Я мог бы также быть проблемой при столкновении с таблицей. Вы можете поставить свой веб-код на вопрос и дизайнер, особенно на таблицу.