Wie kann ich einen Datentyp von tinyint aus MySQL in C # abrufen?

8

Also in C #, wann immer ich eine Tinyint aus meiner MSSQL-Datenbank abgerufen habe, habe ich die folgende Besetzung verwendet.

%Vor%

Diese Umwandlung scheint jedoch in MySQL nicht zu funktionieren.

Was ich versucht habe

%Vor%

und nur

%Vor%

Bearbeiten 1

Ausnahme

%Vor%

Bearbeiten 2

Dies ist der Datentyp.

%Vor%     
meanbunny 06.06.2012, 22:00
quelle

2 Antworten

8

Das Problem ist das aufgrund von Casting und expliziten Operatoren:

(byte)objectExpression ist nicht dasselbe wie (byte)sbyteExpression .

Die erste ist eine [direkte] Umwandlung , die fehlschlägt, weil der reale Objekttyp sbyte und nicht byte ist. Letzteres wird eine -Konvertierung durchführen, die zufälligerweise einen expliziten Operator (eine "Explicit Conversion") mit einer Syntax verwendet, die leider immer noch aussieht wie ein [direct] cast wie oben. Hier ist ein Beispiel für das Scheitern der Sans-Datenbank:

%Vor%

Verwenden Sie entweder eine (sbyte)objectExpression -Cast, die für den realen Objekttyp gültig ist, oder Convert.ToInt32(objectExpression) , die ein object übernimmt, und zaubert etwas, um es in ein int zu konvertieren. (Die Verwendung von Convert.ToByte könnte beim Überlauf eine Ausnahme auslösen.)

Glückliche Kodierung!

    
user166390 06.06.2012, 22:07
quelle
9

Um den richtigen Typ zu bestimmen, sehen Sie sich den Wert von

an %Vor%

im Debugger.

    
usr 06.06.2012 22:01
quelle

Tags und Links