Wie DbType bei DbParameter ermitteln, wenn der Wert null ist

23/04/2008 - 10:39 von Martin Horst | Report spam
Hi,

wenn ich einem von DbParameter abgeleitetem Objekt (in meinem Fall
SqlParameter) einen Wert setze, so wird der DbType automatisch mit dem
richtigem Typ gefüllt. Wenn ich allerdings null (DbNull) setze, so
bleibt der DbType auf seinem Standard (string) stehen, was zu Problemen
bei binàren Datenbankfeldern führt. Wie kann ich denn aus einem .Net
Datentyp den entsprechenden DbType ermitteln? Ich würde das ungern von
Hand machen, da ich es generisch (für verschiedene Provider) halten
möchte. Und die ganzen Schema Informationen liefern diesen DbType nicht
mit, sondern immer nur den .Net Typ.

Danke
Martin
 

Lesen sie die antworten

#1 Frank Dzaebel
23/04/2008 - 19:56 | Warnen spam
Hallo Martin,

wenn ich einem von DbParameter abgeleitetem Objekt (in meinem Fall
SqlParameter) einen Wert setze, so wird der DbType automatisch mit dem
richtigem Typ gefüllt. Wenn ich allerdings null (DbNull) setze, so bleibt
der DbType auf seinem Standard (string) stehen, was zu Problemen bei
binàren Datenbankfeldern führt. Wie kann ich denn aus einem .Net Datentyp
den entsprechenden DbType ermitteln? Ich würde das ungern von Hand machen,
da ich es generisch (für verschiedene Provider) halten möchte. Und die
ganzen Schema Informationen liefern diesen DbType nicht mit, sondern immer
nur den .Net Typ.



Gehts Du über ein (streng-typisirtes) DataSet? Normalerweise
kommt man schon über das Schema an den Typ.
Im "worst case" würde man sich die Infos direkt aus der DB
über deren Schema-Tabellen holen *können*.
Der Standardwert eines Generische Typen T ist übrigens
normal: default(T);

[default-Schlüsselwort in generischem Code (C#)]
http://msdn2.microsoft.com/de-de/library/xwth0h0d(VS.80).aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen