1Danke
ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
475
475
EMPFEHLEN
-
27.04.11 14:39 #1
- Registriert seit
- Apr 2011
- Beiträge
- 19
Hi @ all,
ich mach grade eine Application in C# mit einer Access 2003 Datenbank und OleDb.
Die selects funktionieren super die inserts und updates dafür garnicht
Hier der select code:
Code :1 2 3 4 5 6 7
sqlStatement = "SELECT * FROM Tabelle1"; connectionString = new OleDbConnection(pathToDatabase); connectionString.Open(); dataAdapter = new OleDbDataAdapter(); dataAdapter.SelectCommand = connectionString.CreateCommand(); dataAdapter.SelectCommand.CommandText = sqlStatement; connectionString.Close();
Und hier der insert (update ist so gut wie identisch) code:
Code :1 2 3 4 5 6 7 8
sqlStatement = ""INSERT INTO Ausbilder ( Name, Vorname, Geburtsdatum, Date1, Date2, Gliederung, Telefon, Mobil, Email, Strasse, Hausnummer, Plz, Ort ) VALUES ('" + txtNameGrid.Text + "','" + txtVornameGrid.Text + "','" + dateTimeGeburtstagGrid.Text.ToString() + "','" + dateTimeBGLehrscheinGrid.Text.ToString() + "','" + dateTimeDrkLehrscheinGrid.Text +"','" + txtGliederungGrid.Text + "','" + txtTelefonGrid.Text + "','" + txtMobilGrid.Text + "','" + txtEmailGrid.Text + "','" + txtStrasseGrid.Text + "','" + txtHausnummerGrid.Text + "','" + txtPlzGrid.Text + "','" + txtOrtGrid.Text + "');"); connectionString = new OleDbConnection(pathToDatabase); connectionString.Open(); dataAdapter = new OleDbDataAdapter(); dataAdapter.InsertCommand = connectionString.CreateCommand(); dataAdapter.InsertCommand.CommandText = sqlStatement; connectionString.Close();
Das SQL-Command wir aus der Variable sqlStatement gelesen, in der Datenbank passiert bei insert und update jedoch garnix.
Das SQL-Command ist auch richtig formuliert, da wenn ich es direkt in Access ausführ wird es in die Datenbank geschrieben.
Weiß einer von euch eine Lösung?
-
In deinem Code wird das OleDbCommand doch nie ausgeführt, oder sehe ich das falsch?
http://msdn.microsoft.com/en-us/libr...=VS.71%29.aspx
http://msdn.microsoft.com/en-us/libr...=VS.71%29.aspx
-
27.04.11 15:50 #3
- Registriert seit
- Apr 2011
- Beiträge
- 19
-
Code csharp:
1
connectionString.CreateCommand();
Im Moment setzt du einfach nur die Eigenschaft "CommandText" auf einen String. Nirgendwo wird der Adapter angewiesen damit auch was anzustellen.
Siehe dazu: http://msdn.microsoft.com/en-us/libr...=VS.71%29.aspx
Siehe dazu den zweiten Link, den ich bei meiner ersten Antwort gepostet habe.The OleDbDataAdapter provides this bridge by using [...] Update to send changes made in the DataSet back to the data source.
Außerdem http://msdn.microsoft.com/en-us/libr...=VS.71%29.aspx
An OleDbCommand used during Update to insert records in the data source that correspond to new rows in the DataSet.
-
27.04.11 16:18 #5
- Registriert seit
- Apr 2011
- Beiträge
- 19
D.h. ich brauche analog zu dataAdapter.Fill(dataTable); ein dataAdapter.Update(dataTable)****?
Weil daran bin ich schon gestern gescheitert. Da kommt eine InvalidOperationException und ich weiß nicht so wirklich warum, da ein Objekt vom Typ DataTable als Übergabeparameter akzeptiert wird.
-
28.04.11 14:50 #6
Wenn du die Befehle direkt abschicken willst funktioniert es mit nem Command
hier mal ein beispiel. (zwar ODBC Komponenten...müsten aber ähnlich sein)
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
System.Data.Odbc.OdbcConnection odbcConnection1 = new System.Data.Odbc.OdbcConnection(); odbcConnection1.ConnectionString = "Driver={IBM......" OdbcCommand odbcCommand1 = new OdbcCommand(); odbcCommand1.Connection = odbcConnection1; odbcConnection1.Open(); odbcCommand1.CommandText = "INSERT ....."; odbcCommand1.ExecuteNonQuery(); odbcConnection1.Close();What was hard to code should be hard to read, too******
-
28.04.11 14:59 #7
- Registriert seit
- Apr 2011
- Beiträge
- 19
Ah cool es tut

Ich habs jetzt zwar nochmal n bisschen anderes gelöst aber der Execute-Befehl hat immer gefehlt
Code :1 2 3 4 5 6 7
connectionString = new OleDbConnection(pathToDatabase); connectionString.Open(); dataAdapter = new OleDbDataAdapter(); dataAdapter.InsertCommand = connectionString.CreateCommand(); dataAdapter.InsertCommand.CommandText = sqlStatement; dataAdapter.InsertCommand.ExecuteNonQuery(); connectionString.Close();
Vielen Dank!
Ähnliche Themen
-
Dateneintrag wird nicht geschrieben
Von lll192837465lll im Forum PHPAntworten: 6Letzter Beitrag: 12.02.09, 13:34 -
onClick wird nicht richtig neu geschrieben.... :(
Von sPEs im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 02.06.06, 17:49 -
Cookie wird nicht geschrieben
Von xollo im Forum PHPAntworten: 9Letzter Beitrag: 16.12.05, 10:14 -
CSV wird nicht komplett in DB geschrieben
Von max im Forum PHPAntworten: 2Letzter Beitrag: 14.06.05, 16:22 -
Session Variable wird nicht neu geschrieben?!
Von TaxiDriver im Forum PHPAntworten: 11Letzter Beitrag: 11.09.03, 23:27





Zitieren


Login





