Forum: ADO.NET |
Thema:
MySQL: Probleme mit Parametern |
Von:
G. Guest (
24.06.2004 00:02) |
Hallo,
ich benutze MySql über den MySql ODBC Treiber mit OleDb.
Leider funktionieren dabei nur Parameter mit OleDbType.VarChar. Das ist bei Integerwerten nicht weiter schlimm, da MySql die auch als String annimmt, aber bei DateTime Typen passt die Standartrepräsentation als string nicht.
Kann mir dabei jemand helfen?
Beispiel:
1 dbConn.ConnectionString="blablabla";
2
3 OleDbCommand cmd = new OleDbCommand("SELECT * FROM jobs WHERE (id = ?)",dbConn);
4
5 cmd.Parameters.Add("Id",OleDbType.Integer , 4, "Id");
6 cmd.Parameters["Id"].Value = 100;
7 dbConn.Open();
8 cmd.ExecuteReader();
9 // beim Ausführen tritt der fehler auf (E_ABORT, keine Fehlerinfo)
10 // ....
Wenn man Zeile 5 durch diese
5 cmd.Parameters.Add("Id",OleDbType.VarChar , 10, "Id");
ersetzt funktioniert das Ganze.
Leider ist dieser Workaround bei mir Problematisch, da ich einen Dataset generiert habe, der mit einem DataAdapter gefüllt wird und ich daher keien Einfluss auf die Darstellung eines DateTime Typs im SQL Statement habe (oder doch). Und die .NET Darstellung versteht MySQL leider nicht.
Hat jemand einen Idee, wie ich das in den Griff bekomme, ohne den Datentyp im DataSet auf string zu ändern?
Gruß Michael
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!