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%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:
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!