2009-05-26 8 views
3

Ich versuche, einen Nachrichtentext für datable-Ergebnisse bereitzustellen. Unten ist ein Codeschnipsel, den ich bis jetzt geschrieben habe:Binden oder Ziehen eines DataTable-Datensatzes an einen MessageBox-Text in C#

String mystring = comboBox1.Text; if (mystring.Substring (0, 12) == ("Firmenname")) { textBox2.Text = mystring.Substring (13); ADOCon.ConnectionString = @ "Provider = Microsoft.Jet.OLEDB.4.0; Datenquelle = C: \ Users \ Name \ Desktop \ SmallBizDb.mdb"; ADOCon.Open();

  OleDbCommandBuilder CBuilder = new OleDbCommandBuilder(DAdapter); 
      DAdapter = new OleDbDataAdapter("Select Companies.Company_Name From Companies Where Companies.Company_Name = '" + textBox2.Text + "'", ADOCon); 

      DAdapter.Fill(DTable); 
      MessageBox.Show(DTable.ToString()); 
      ADOCon.Close(); 
      ADOCon.Dispose(); 
     } 
     else 

Grundsätzlich, wenn eine Endbenutzer Art „Firmenname-Firma One“ zum Beispiel würde ich ein Meldungsfeld wie die Datentabelle (dTabelle) Informationen erscheinen die besagen, die aus einer SQL-Abfrage kommt. Derzeit habe ich "messagebox.Show (DTable.ToString());", die nicht funktioniert. Alle anderen Beispiele, die ich gesehen habe, verwenden Zeilenindizes wie ".Rows [0]", die ich nicht verwenden kann, da Zeilennummern nicht beteiligt sind, sondern Spaltennamen und Datensatznamen aus der sql "where" -Anweisung innerhalb der Daten Adapter.

Hier gibt es viel Fluff, also ist mein Hauptproblem, wie man meine datierbar Ergebnisse umwandelt, so dass sie in einer Nachrichtenbox angezeigt werden.

Danke,

DFM

Antwort

2

Ich bin nicht sicher, was Sie wollen, aber wenn Sie die Werte in der Datentabelle angezeigt werden möchten, sollten Sie in der Lage sein, die Daten von ihm zu bekommen, und es zeigen in beliebiger Reihenfolge. Ich glaube, Sie wollen so etwas wie

 System.Text.StringBuilder b = new System.Text.StringBuilder(); 
     foreach (System.Data.DataRow r in dt.Rows) 
     { 
      foreach (System.Data.DataColumn c in dt.Columns) 
      { 
       b.Append(c.ColumnName.ToString() + ":" + r[c.ColumnName].ToString()); 
      } 
     } 
     MessageBox.Show(b.ToString()); 

Dies wird eine Schleife durch alle Reihen tun zurück, und für jede Zeile (jedes Unternehmen in den Ergebnissen) fügen Sie die Details in Form Spaltenname: Actual der Datatable.

Natürlich bin ich nicht sicher, eine unbekannte Menge von Daten in einer Nachricht Box anzuzeigen, wie dies eine gute Idee ist, das ist nur eine Möglichkeit, wie Sie es tun können.

Verwandte Themen