Laden...

SqlDbType --> System.Type

Erstellt von Reverent vor 16 Jahren Letzter Beitrag vor 15 Jahren 1.622 Views
R
Reverent Themenstarter:in
265 Beiträge seit 2005
vor 16 Jahren
SqlDbType --> System.Type

Hallo Leute,

ich möchte ein SqlDbType zu einem System.Type wandeln.
Ich habe schon gegoogelt, aber leider nicht passendes gefunden, nur bin ich immer auf Funktionen gestossen die, die User selber geschrieben haben.

z.B. switch / case Funktionen

Gibt es da keine fertige .Net Framework Funktion die man nutzen kann!

Sonst schreibe ich halt selber eine switch / case Funktionen!

Bis Dann
Reverent

J
3.331 Beiträge seit 2006
vor 16 Jahren

Ein Convert oder cast o.ä. kann es offensichtlich nicht geben, da **SqlDbType **und DbType **Enumerationen **sind, die einzelnen Elemente also int-Werte repräsentieren. Deshalb kann eine solche Konvertierung nur durch eine separate switch-Lösung ersetzt werden.

Wenn Du schon eine "selbst geschriebene" Methode gefunden hast: was spricht dagegen, so eine zu übernehmen?

Nachtrag
Aber es gibt eine einfache generelle Lösung, die für fast alle Typen funktioniert:

DbType dbTyp = DbType.Boolean;  // als Beispiel
string sType = "System." + dbTyp.ToString(); 
Type typ = Type.GetType(sType);

Man muss dann nur die "speziellen" DbTypen gesondert behandeln.

Jürgen

T
243 Beiträge seit 2006
vor 15 Jahren

Ich hatte gerade ein ähnliches Problem: den umgekehrten Weg von System.Type zu DbType. Der Vollständigkeit halber und falls es jemanden interessiert, hier die Methode die ich dafür erstellt habe:

public static DbType ConvertToDbType(Type type)
{
        string name = type.Name;
        DbType val = DbType.String; // Standard

        try
        {
            val = (DbType)Enum.Parse(typeof(DbType), name, true);
        }
        catch 
        { } // wenn keine Konvertierung möglich -> Standard zurückgeben

        return val;
}

Die Methode (zumindest so ähnlich) hab ich übrigens im MSDN-Forum gefunden. Sie sollte eigentlich bei den meisten Standardtypen funktionieren...

4.506 Beiträge seit 2004
vor 15 Jahren

Hallo zusammen,

ich habe mir für die "Konvertierung" von DBType auf System.Type immer einen OpenSource OR-Mapper herangezogen und im Quellcode nachgeschaut, welche Typen auf welche gemappt werden.

Aber ich habe auch immer nur Switch Anweisungen dafür gesehen, und denke dass es hier auch die einzig sinnvolle Verarbeitung ist.

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”