tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von michaelwengert
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
475
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sascha Wetzel Sascha Wetzel ist offline Mitglied
    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?
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    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
     

  3. #3
    Sascha Wetzel Sascha Wetzel ist offline Mitglied
    Registriert seit
    Apr 2011
    Beiträge
    19
    Zitat Zitat von CPoly Beitrag anzeigen
    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
    Naja ich hab auch kein OleDbCommand...
    Ich hab eine dataAdapter der so viel ich weiß und gelesen haben eigentlich alles übernehmen sollte oder ist das nicht so?
     

  4. #4
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Zitat Zitat von Sascha Wetzel Beitrag anzeigen
    Naja ich hab auch kein OleDbCommand...
    Code csharp:
    1
    
    connectionString.CreateCommand();

    Zitat Zitat von Sascha Wetzel Beitrag anzeigen
    Ich hab eine dataAdapter der so viel ich weiß und gelesen haben eigentlich alles übernehmen sollte oder ist das nicht so?
    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
    The OleDbDataAdapter provides this bridge by using [...] Update to send changes made in the DataSet back to the data source.
    Siehe dazu den zweiten Link, den ich bei meiner ersten Antwort gepostet habe.

    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.
     

  5. #5
    Sascha Wetzel Sascha Wetzel ist offline Mitglied
    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.
     

  6. #6
    Avatar von michaelwengert
    michaelwengert michaelwengert ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Heilbronn (BW)
    Beiträge
    581
    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();
    Sascha Wetzel bedankt sich. 
    What was hard to code should be hard to read, too******

  7. #7
    Sascha Wetzel Sascha Wetzel ist offline Mitglied
    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

  1. Dateneintrag wird nicht geschrieben
    Von lll192837465lll im Forum PHP
    Antworten: 6
    Letzter Beitrag: 12.02.09, 13:34
  2. onClick wird nicht richtig neu geschrieben.... :(
    Von sPEs im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 02.06.06, 17:49
  3. Cookie wird nicht geschrieben
    Von xollo im Forum PHP
    Antworten: 9
    Letzter Beitrag: 16.12.05, 10:14
  4. Antworten: 2
    Letzter Beitrag: 14.06.05, 16:22
  5. Session Variable wird nicht neu geschrieben?!
    Von TaxiDriver im Forum PHP
    Antworten: 11
    Letzter Beitrag: 11.09.03, 23:27