2017-09-06 3 views
-6

ich der folgenden Ausnahmenicht in der Lage Objekt vom Typ ‚system.windows.forms.bindingsource‘ werfen ‚System.Data.DataTable‘

nicht in der Lage bin zu erfahren eingeben Objekt vom Typ ‚system.windows zu werfen .forms.bindingsource‘eingeben 'System.Data.DataTable'

Hier ist meine Methode

private void GridViewStudentsList_RowValidated(object sender, DataGridViewCellEventArgs e) { 
    try { 
     BindingSource bindingSource = (BindingSource) GridViewStudentsList.DataSource; 
     DataTable changes = (DataTable) bindingSource.DataSource; 
     changes.GetChanges(); 
     if (changes != null) { 
      OracleConnection con = new OracleConnection(connection); 
      con.Open(); 
      OracleDataAdapter adapter = new OracleDataAdapter(); 
      OracleCommandBuilder mcb = new OracleCommandBuilder(adapter); 
      adapter.UpdateCommand = mcb.GetUpdateCommand(); 
      adapter.Update(changes); 
      changes.AcceptChanges(); 
      MessageBox.Show("Cell Updated"); 
      con.Close(); 
      return; 
     } 
    } catch (Exception ex) { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

So haben Sie versucht, es zu debuggen und spähte, welche Art 'bindingSource.DataSource' ist getan? – Matten

+0

bindingSource.DataSource 'hat eine Ausnahme vom Typ' System.NullReferenceException 'geworfen – Suriyan

+0

bindingSource.DataSource = {College_Management_System.ViewStudentData} – Suriyan

Antwort

0

ich einige kleine Fehler

Below-Code arbeitet Code

private void GridViewStudentsList_RowValidated(object sender, DataGridViewCellEventArgs e) 

{ 


     try 

      { 

      BindingSource bindingSource = (BindingSource)GridViewStudentsList.DataSource; 

      DataSet changes = (DataSet)bindingSource.DataSource; 

      changes.GetChanges(); 

      if (changes != null) 
      { 
       OracleConnection con = new OracleConnection(connection); 
       con.Open(); 
       OracleDataAdapter adapter = new OracleDataAdapter("select * from students_list",con); 
       GridViewStudentsList.EndEdit(); 
       OracleCommandBuilder mcb = new OracleCommandBuilder(adapter); 

       adapter.UpdateCommand = mcb.GetUpdateCommand(true); 


       adapter.Update(changes,"students_list"); 
       changes.AcceptChanges(); 

       MessageBox.Show("Cell Updated"); 
       // GridViewStudentsList.EndEdit(); 
       con.Close(); 
       return; 
      } 


     } 

     catch (Exception ex) 
     { 
      MessageBox.Show(ex.StackTrace); 
     } 
    } 
Verwandte Themen