2014-01-22 3 views
0

объекта не задана ссылка на экземпляр объекта я делает систему управления, но из-за этой ошибки я не мог сохраненным мои данные в DatabseНевозможно сохранить данные в базу данных

private void button1_Click(object sender, EventArgs e) 
    { 

     try 
     { 
      DataRow row = ds.Tables[0].NewRow(); 
      row[1] = textBox1.Text; 
      row[2] = textBox2.Text; 
      row[3] = textBox3.Text; 
      row[4] = textBox4.Text; 
      row[5] = textBox5.Text; 
      row[6] = textBox6.Text; 

      ds.Tables[0].Rows.Add(row); 

      clas.UpdateDatabase(ds); 
      maxrows = maxrows + 1; 
      inc = maxrows - 1; 
      MessageBox.Show("DATA INSERTED"); 

     } 

     catch (Exception err) 
     { 

      MessageBox.Show(err.Message); 

     } 
class Class1 
{ 
    public string sql_string; 
    public string strCon; 

    public string Sql 
    { 
     set { sql_string = value; } 
    } 

    public string connection_string 
    { 

     set { strCon = value; } 

    } 

    public System.Data.DataSet GetConnection 
    { 

     get { return MyDataSet(); } 

    } 
    System.Data.SqlClient.SqlDataAdapter da_1; 
    System.Data.SqlClient.SqlConnection con; 
    System.Data.DataSet dat_set; 


    public System.Data.DataSet MyDataSet() 
    { 
     con = new System.Data.SqlClient.SqlConnection(strCon); 
     con.Open(); 
     da_1 = new System.Data.SqlClient.SqlDataAdapter(sql_string, con); 
     dat_set = new System.Data.DataSet(); 
     da_1.Fill(dat_set, "Table_Data_1"); 
     con.Close(); 
     return dat_set; 
    } 

    public void UpdateDatabase(System.Data.DataSet ds) 
    { 

     System.Data.SqlClient.SqlCommandBuilder cb = new System.Data.SqlClient.SqlCommandBuilder(da_1); 

     cb.DataAdapter.Update(ds.Tables[0]); 



    } 
} 
} 
+1

Где именно вы получаете эту ошибку в какой строке? – Nil23

+1

Вы отлаживали его? Он должен ломаться точно в строке, содержащей нулевую ссылку. И нулевая ссылка означает, что вы не инициализировали объект. – Mark

+0

Вы никогда не устанавливаете команду «Обновить» для адаптера данных. Я думаю, вам нужно вызвать 'cb.GetUpdateCommand()', прежде чем вы вызовете 'cb.DataAdapter.Update (ds.Tables [0])' – GarethD

ответ

0

вы не можете имеют нулевое значение в некотором объекте. используйте try и catch, чтобы узнать точное местоположение, а затем попытайтесь инициализировать объект или предоставить некоторое значение, вызывающее ошибку.

попытайтесь справиться с этой ошибкой самостоятельно.

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