tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
2071
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    cremor cremor ist offline Grünschnabel
    Registriert seit
    May 2006
    Beiträge
    2
    Ich versuche in einem DataGridView eine View anzuzeigen und auch zu verändern.
    Das Anzeigen ist ja kein Problem, das Ändern aber leider schon

    Ich habe schon verschiedene Varianten versucht, doch ich habe immer den Fehler, dass er die Parameter nicht findet.

    Die Spalten in der DataGridView heißen genau so wie die Spalten in der Datenbank (per typed DataSet übernommen).

    Aufruf als StoredProcedure, wie ich in diversen Howtos gelesen habe:
    Code csharp:
    1
    2
    
    dataAdapter.InsertCommand = new MySqlCommand("new_kunde", this.dbConnection);
    dataAdapter.InsertCommand.CommandType = CommandType.StoredProcedure;
    Aufruf als normaler SQL-Text:
    Code csharp:
    1
    
    dataAdapter.InsertCommand = new MySqlCommand("CALL new_kunde(?Vorname, ?Nachname [...]", this.dbConnection);
    Bei beiden Varianten tritt eine Exception auf (Parameter nicht definiert).

    Ich habe auch den Befehl
    Code csharp:
    1
    
    dataAdapter.InsertCommand.Prepare();
    gefunden. Was der aber tut ist mir noch nicht ganz klar

    Die Veränderungen in der DataGridView will ich ganz normal per
    Code csharp:
    1
    
    dataAdapter.Update(dataSet, tableName);
    speichern.


    Nochmal kurz:
    Wie bekomme ich die Daten aus dem DataGridView als Parameter in den SQL-Befehl?

    Ist das soweit OK und muss ich nur noch die Parameter hinbiegen?
    Oder muss man das ganz anders machen? (Ich habe es zuerst mit 2 Insert-Befehlen (die View geht über 2 Tabellen) als InsertCommand probiert, aber da hat er immer einen Fehler in der SQL-Syntax gemeldet ).

    Update und Delete habe ich noch gar nicht versucht, zuerst sollte mal Insert funktionieren

    Ich verwende:
    • MySQL 5.0.18-nt
    • MySQL Connector/Net 1.0.7
    • Visual Studio 2005

    mfg cremor
    Geändert von cremor (27.05.06 um 17:21 Uhr)
     

  2. #2
    cremor cremor ist offline Grünschnabel
    Registriert seit
    May 2006
    Beiträge
    2
    Ich habe jetzt hier folgendes gefunden:
    Code :
    1
    
    UPDATE EMP SET EMPNO = ?, ENAME = ?, JOB = ?, MGR = ?, HIREDATE = ?, SAL = ?, COMM = ?, DEPT = ? WHERE EMPNO = ?

    Dieses Prinzip (nur '?') funktioniert aber auch nicht. Mit
    Code csharp:
    1
    
    dataAdapter.InsertCommand.Prepare();
    kommt der Fehler: "A MySqlParameter with ParameterName '?' is not contained by this MySqlParameterCollection."
    und ohne Prepare kommt: "Parameter '?' must be defined"

    Übrigens funktioniert es auch nicht, wenn ich den generierten Code eines MySqlCommandBuilders selbst verwende. Der CommandBuilder macht anscheinend noch weitere Dinge.
    Und eben diese weiteren Dinge (das Mappen einer Spalte auf einen Parameter) würde ich gerne selber machen, ich weiß nur nicht wie.

    mfg cremor
    Geändert von cremor (27.05.06 um 17:22 Uhr)
     

Ähnliche Themen

  1. MySQL Stored Procedures
    Von real-insanity im Forum PHP
    Antworten: 0
    Letzter Beitrag: 28.04.09, 19:09
  2. Stored Procedures in MySQL
    Von NBOne im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 30.07.08, 23:08
  3. [MySQL] Stored Procedures
    Von xloouch im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 06.06.08, 14:16
  4. mySQL > Stored Procedures
    Von fa_herrmann im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 25.04.07, 19:21