2017-04-26 1 views
0

Ich versuche, Oracle-Daten in einem DataGridView in meiner Windows Form Application anzuzeigen, aber es gibt nur eine graue leere Ansicht zurück. Mein Code für diese Zeit ist:So durchsuchen Sie Daten in Gridview mit einem TextBox-Wert mit einer Oracle-Datenbank

 string insertquery = "select * from Candidate where CandidateName like '"+ txtBoxSearchData.Text +"%'"; 

     OracleConnection con = new OracleConnection(oradb); 
     con.Open(); 
     OracleCommand cmd = new OracleCommand(); 
     cmd.Connection = con; 
     cmd.CommandText = insertquery; 

     try 
     { 
      OracleDataReader reader = cmd.ExecuteReader(); 

      OracleDataAdapter orada = new OracleDataAdapter(cmd); 
      DataTable dataTable = new DataTable(); 
      orada.Fill(dataTable); 
      dataTable.Load(reader); 
      BindingSource bSource = new BindingSource(); 
      bSource.DataSource = dataTable; 
      dataGridViewSearch.DataSource = bSource; 
      orada.Update(dataTable); 

     } 
     catch(ArgumentException ex) 
     { 
      MessageBox.Show("Error: " + ex.Message); 
     } 
     catch(OracleException ex1) 
     { 
      MessageBox.Show("Error: " + ex1.Message); 
     } 
     finally 
     { 
      cmd.Dispose(); 
      con.Dispose(); 
     } 
    } 

Ich bin sicher, ich nicht alle diese Funktionen in meiner Try-Anweisung erforderlich, aber ich habe über viele verschiedene Methoden kommen, dies zu tun - ich eingeschlossen nur all jene in meinem Code Experiment. Die Verbindungszeichenfolge ist ebenfalls korrekt, da es mir durch Abfragen in einem anderen Teil meiner Anwendung gelungen ist, Daten in die Tabellen einzufügen.

Antwort

0

Tun Sie etwas wie folgt sollte genug sein. Ein OracleDataAdapter oder BindingSource sollte nicht benötigt werden. Ich kann es hier einfach nicht testen, da ich keine Oracle-Datenbank habe.

public void fillDataGrid() 
    { 
     try 
     { 
      using(OracleConnection connection = new OracleConnection("connectstring")) 
      using(OracleCommand cmd = new OracleCommand("select * from my super table", connection)) 
      { 
       connection .Open(); 
       using(OracleDataReader oracleDataReader = cmd.ExecuteReader()) 
       { 
        DataTable dataTable = new DataTable(); 
        dataTable.Load(oracleDataReader); 
        myDataGrid.DataSource = dataTable; 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
} 
Verwandte Themen