Hi @ll..
bin jetzt schon seit Tagen an einem kleinen dummen Problemchen dran und komm nicht drauf *grr*
Ich will einen String in einen Datentyp umwandeln und diesen dann für die Initialisierung einer Variable verwenden:
Kurz als ALLGEMEINES Beispiel:
Ich habe einen String z.B. "System.Int32", z.B. geschrieben in einer Textdatei.
Nun will ich eine Variable anlegen, mit diesem Wert
Das ist klar dass dies nicht funktioniert, aber nur zum allgemeinen Verständnis was ich machen will.
Den Typ aus einem String lässt sich ja so ermitteln:
Nur bei vielen Externen Klassen bekomm ich eben den Fehler auf eine nicht Inizialierte Objektinstanz.
Mir geht es hauptsächlich darum.
Mit dem SQL SMO will ich einen Datenbank aus einer Konfigurationsdatei (Text oder xml) erstellen.
In der Datei steht der Spalenname und der Datentyp
--> z.B.
<item columnname="Testspalte1" typ="BigInt">
<item columnname="Testspalte2" typ="NVarChar(20)">
Über das Microsoft.SqlServer.Management.Smo erstelle ich eine Variable mit dem Column Datentyp
Dort beim Datatype will ich den Wert aus der Textdatei hernehmen.
Probiert habe ich schon
Aber das klappt nur mit den Systemwerden z.B. "System.String" "System.Int32" usw..
Ansonten bekomme ich immer die Fehlermeldung auf die fehlende Objektinstanz.
über CType gehts auch nicht, da nimmt ers mir nicht an
z.B. über das erstellen einer irrelevanten Variable, und die über CType umwandeln und dann über GetType wieder den Datentyp herzugbekommen.
Fall Ihr mir jetzt vlt sagen wollt, nimm doch ein SQL-Skript, dann muss ich ablehnen. Es soll über das SMO gehen.
Auch bitte keine Kommentare wie, Bitte nimm doch für die String umwandlung oder Integer Umwandlung CInt, CStr.. Das ist mir alles klar.. aber es geht mir hierbei um die Datenbankerstellung und um das Allgemeine.
Irgendwie musss es ja funktionieren..
Aber nach langen langen Versuchen hab ichs einfach nicht hinbekommen..
Vlt hat das schon mal jemand so ähnlich gemacht, wie ich es machen will oder weiß jemand ne lösung.
Schon mal vielen vielen Dank im Voraus
mfg -=nEuDy=-
bin jetzt schon seit Tagen an einem kleinen dummen Problemchen dran und komm nicht drauf *grr*
Ich will einen String in einen Datentyp umwandeln und diesen dann für die Initialisierung einer Variable verwenden:
Kurz als ALLGEMEINES Beispiel:
Ich habe einen String z.B. "System.Int32", z.B. geschrieben in einer Textdatei.
Nun will ich eine Variable anlegen, mit diesem Wert
Code:
Dim s as String = "System.Int32" Dim x as s
Den Typ aus einem String lässt sich ja so ermitteln:
Code:
Type.GetType("System.Int32")
Mir geht es hauptsächlich darum.
Mit dem SQL SMO will ich einen Datenbank aus einer Konfigurationsdatei (Text oder xml) erstellen.
In der Datei steht der Spalenname und der Datentyp
--> z.B.
<item columnname="Testspalte1" typ="BigInt">
<item columnname="Testspalte2" typ="NVarChar(20)">
Über das Microsoft.SqlServer.Management.Smo erstelle ich eine Variable mit dem Column Datentyp
Code:
Dim col as Microsoft.SqlServer.Management.Smo.Column col = new Column(tabellenname, "Hier die Spalte aus der Textdatei z.B." & _ "Testspalte1" col.Datatype = DataType.BigInt <<---
Probiert habe ich schon
Code:
col.Datatype = Type.GetType("DataType.BigInt")
Ansonten bekomme ich immer die Fehlermeldung auf die fehlende Objektinstanz.
über CType gehts auch nicht, da nimmt ers mir nicht an
z.B. über das erstellen einer irrelevanten Variable, und die über CType umwandeln und dann über GetType wieder den Datentyp herzugbekommen.
Code:
1. CType(Variable, Type.GetType("System.String")) <-- Geht nicht 2. Dim t as Type t = Type.GetType("System.String") CType(Variable, t) <-- Geht auch nicht (auch nicht beim Festlegen einer _ Variable z.B. x = [...]) 3. Dim o as Object Dim x as String = "" x = CType(o, Type.GetType("System.String")) Klasse.Datentype = x.GetType() <-- Das war meine Eigentlich Idee
Auch bitte keine Kommentare wie, Bitte nimm doch für die String umwandlung oder Integer Umwandlung CInt, CStr.. Das ist mir alles klar.. aber es geht mir hierbei um die Datenbankerstellung und um das Allgemeine.
Irgendwie musss es ja funktionieren..
Aber nach langen langen Versuchen hab ichs einfach nicht hinbekommen..
Vlt hat das schon mal jemand so ähnlich gemacht, wie ich es machen will oder weiß jemand ne lösung.
Schon mal vielen vielen Dank im Voraus
mfg -=nEuDy=-
Comment