Ich stehe vor einem Problem, bei dem C# eine Ergebnisdaten aus einer MySQL Stored Procedure falsch zu interpretieren scheint.C# MySQL Fehlinterpretation des Feldtyps
Die Stored Procedure gibt 3 Int32 Spalten gefolgt von 4 Varchar/String Spalten ... oder zumindest sollte es.
Die Spalten 1-5 kehren in Ordnung zurück und auch die Spalte 7, aber aus irgendeinem Grund scheint Spalte 6 als Image/Byte [] Spalte interpretiert zu werden und ich habe keine Ahnung warum die Stored Procedure definitiv Varchar zurückgibt (255) Spalte für dieses Feld.
Ich bin noch nie auf dieses Problem gestoßen und umfangreiche googeln gibt nur unabhängige Probleme zurück. Jede Hilfe wäre willkommen.
Unten ist der C# -Code;
Ich habe keinen Zugriff auf den SP, also kann ich diesen Code nicht posten. Im Folgenden finden Sie jedoch ein Beispiel für einen Ergebnissatz. Ich vermute, es ist der hervorgehobene Wert, der das Problem verursacht, aber keine Ahnung.
|ID1|ID2|Flagged|Att|Operation|Value|Type|
|---|---|-------|---|---------|-----|----|
|740|100|1 | |=~ |NULL |User|
|740|100|1 | |!* |. |Item|
|740|100|1 | |:= |PPP |Item|
|740|100|1 | |:= |**base-qos-tp,bb-qos-sch-map,8m,bb-qos-cl-dscp,bb-qos-rw-1p,-24,-24**|Item|
|740|100|1 | |:= |8MOS |Item|
UPDATE von Kommentaren
- Der Anbieter ist Connector/NET 6.9.7
dt1
eine nicht typisierte Datatable ist.- Der Code der gespeicherten Prozedur ist nicht verfügbar. Der Typ der sechsten Spalte (
Value
) wurde von der DBA alsvarchar(255)
verifiziert. - Das Angeben von charset = utf8 und das Behandeln von Blobs als utfs = yes in der Verbindungszeichenfolge hat das Problem leider auch nicht gelöst.
- Es wird angenommen, Datenbankversion ist 5.1.41
Code? Fehlermeldungen? – hagello
Ja. und "Es sollte" - was ist mit dir sicherzustellen, dass es tut? Und dann posten Sie genug Code, um es zu reproduzieren. Hilfe? Stellen Sie jemanden kompetenter ein. Will mehr - bieten mehr Informationen. – TomTom
Während es einen Fehler mit dem Treiber geben kann, den Sie verwenden (welcher? Connector/Net? Noch etwas?), Ist der wahrscheinlichste Grund ein Problem entweder im Code oder in der gespeicherten Prozedur. Veröffentlichen Sie den Code und die Nachrichten. So wie es ist, ist es unmöglich zu helfen, Sie erwähnen nicht einmal * was * zurückgegeben wird: eine DataTable? Ein DataReader? Eine NHibernate-Entität? –