Laden...

OleDbDataAdapter

Erstellt von cpetit vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.519 Views
C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 16 Jahren
OleDbDataAdapter

Hallo,

habe ein Problem mit dem füllen des OleDbDataAdapter.

Hier springt mir das Programm immer raus "myAdapter.Fill(myDataTable);"wenn ich den Adapter füllen möchte.

Dies geschiedt nur bei einem View aus einer Access-Datenbank. Bei den anderen Views macht er es. Kopiere ich den SQL-Select aus dem Überwachungsfenster und gebe diesen in Access ein bekomme ich das Ergebnis angezeigt.

Hat jemand einen Tipp?

Komme nicht auf den Fehler.

Genaue Fehlermeldung lautet:
Eine nicht behandelte Ausnahme des Typs 'System.Data.OleDb.OleDbException' ist in system.data.dll aufgetreten.

B
67 Beiträge seit 2007
vor 16 Jahren

bißchen mehr code wäre hilfreich .. der select-string zb und der aufruf und die datenbanktabelle und sowas

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 16 Jahren

Hier der Code.

		public DataTable ExecuteDataTable(string Sql) 
		{
			open();
			myAdapter = new OleDbDataAdapter(Sql, myConnection);
			myDataTable = new DataTable();

			DataSet custDS = new DataSet();
			DataTable custTable = custDS.Tables.Add("CustTable");

			myAdapter.Fill(myDataTable);

			return myDataTable;

		}

und hier der Select-String "Select Ab_ID, Ab_ProduktID, Ab_Dicke, Ab_Breite, Ab_Laenge, Bestand, Reserviert, Verbleib From qry_Produktdetail"

Der Code für das füllen der DataTable ist immer der gleiche.

J
3.331 Beiträge seit 2006
vor 16 Jahren

Ich vermisse die Befehle:

myConnection.Open();
//  später:
myConnection.Close();

Oder was macht open()?

Außerdem könntest Du eine MessageBox mit der Exception einbauen; dann gibt es evtl. mehr Informationen darüber.

Hinweise: Auf das DataSet kannst Du bei dieser Konstruktion sowieso verzichten. Außerdem sollte die Connection nicht dauerhaft existieren, sondern nur bei Bedarf erzeugt werden, z.B. so:

using(DbConnection myConnection = new DbConnection()) {
  //  alles, was in dieser Connection gemacht werden soll
}

Gruß Jürgen

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 16 Jahren

Außerdem sollte die Connection nicht dauerhaft existieren

Stimmt habe hier die Close() Methode vergessen.

Ändert aber nix an meinem Problem 🙁

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 16 Jahren

Danke juetho

das mit der MessageBox hat mir schon mal weiter geholfen.

Liegt an der Funktion NZ() die ich in dem View benutze aber was mache ich jetzt?

F
10.010 Beiträge seit 2004
vor 16 Jahren

Open/Close der Connection benötigst du sowieso nicht, wenn du den DataAdapter benutzt.

Wenn deine Funktio9n NZ() in der AccessDb nicht gheht, solltest Du diese auch fixen.

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 16 Jahren

Die Funktion Nz() funzt ja in Access.

Habe wie "juetho" geschrieben hat die Exception mit der Kombobox ausgegeben.

Die Error-Meldung: "Undefinierte Funktion 'Nz' in Ausdruck."

Komme einfach zur keiner Lösung.

Hat jemand noch einen Tipp?