DataAdapter.Fill(Dataset)

ich versuchen, einige Daten aus einer Access-Datenbank via OleDB in einer DataSet.
Aber die DataSet ist leer nach der Fill() Methode. Die gleiche Aussage arbeitet und-Rückgabe 1 Zeile, wenn ich Sie auslösen manuell in D*.

OleDbConnection connection = 
   new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Inventar.accdb");
DataSet1 DS = new DataSet1();
connection.Open();

OleDbDataAdapter DBAdapter = new OleDbDataAdapter(
    @"SELECT tbl_Computer.*,  tbl_Besitzer.*
      FROM tbl_Computer 
      INNER JOIN tbl_Besitzer ON tbl_Computer.FK_Benutzer = tbl_Besitzer.ID 
      WHERE (((tbl_Besitzer.Vorname)='ma'));", 
    connection);

DBAdapter.Fill(DS);

Vielen Dank im Voraus.

Neuen funktionierenden code:

DataSet ds = new DataSet();
OleDbDataAdapter DBAdapter = new OleDbDataAdapter();

OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Inventar.accdb");
string query = @"
    SELECT tbl_Computer.*,  tbl_Besitzer.*
    FROM tbl_Computer 
    INNER JOIN tbl_Besitzer ON tbl_Computer.FK_Benutzer = tbl_Besitzer.ID 
    WHERE (((tbl_Besitzer.Vorname)='ma'));";

connection.Open();

using (OleDbCommand command = new OleDbCommand(query, connection))
using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
{
    adapter.Fill(ds);
}

Dictionary<string, string> DictValues = new Dictionary<string, string>();

for (int i = 0; i <= ds.Tables[0].Rows[0].ItemArray.Length - 1; i++)
{
    MessageBox.Show(ds.Tables[0].Rows[0].ItemArray[i] + " -- " + ds.Tables[0].Rows[0].Table.Columns[i]);
    DictValues.Add(ds.Tables[0].Rows[0].Table.Columns[i].ToString(), ds.Tables[0].Rows[0].ItemArray[i].ToString());
}

Nun Der Richtige code ist oben gepostet, mit einem Dictonary Zugriff auf die Daten komfortabler.
hoffe jemand findet Hilfe in diesem Beitrag. Danke Euch allen für die arbeiten !

Haben Sie alle Tabellen im dataset? Ich glaube, möglicherweise müssen Sie fügen Sie einige Tabellen mit der entsprechenden Struktur
Es ist nicht erforderlich. Schema wird automatisch aufgefüllt

InformationsquelleAutor Marcus | 2011-06-30

Schreibe einen Kommentar