System.Decimal



  • In ADO.NET gibt es die Möglichkeit, eine virtuelle Datenbank im Speicher über das DataSet anzulegen.

    DataSet ds = new DataSet("nordwind");
    DataTable dt = new DataTable("kunde");
    dt.Columns.Add("kdnr", System.Type.GetType("System.Decimal"));
    ds.Tables.Add(dt);
    Console.WriteLine(ds.GetXmlSchema());
    

    Nun, eine Integer-Spalte (das habe ich auch in der MSDN gefunden) wird als Parameter der Add-Funktion mit

    System.Type.GetType("System.Decimal"));
    

    definiert.

    Doch wie sieht es mit anderen Datentypen aus, wie z. B. string (varchar) udgl. ... 😕



  • An und für sich sehr einfach ... (muß mir ja auch alles selbst beantworten hier 😃 )

    Einfach
    <Namespace>.<Type>

    Bei String wird es etwas gemein, denn

    string abc; // ok
    String def; // ok
    

    Aber

    tb.Columns.Add("kdnrx", System.Type.GetType("System.string")); // nicht ok
    tb.Columns.Add("kdnrx", System.Type.GetType("System.String")); // ok
    


  • Das liegt daran dass jede Sprache interne Datentypen haben kann die aber irgendeiner Framework-Klasse entsprechen müsen. System.String ist die Klasse, string der Name in C#. Vergleiche auch System.Int32 <=> int usw...

    BTW: IMHO dürfte typeof(System.String) Laufzeiteffizienter sein als System.Type.GetType("System.String")



  • Vielen Dank! War eine gute Info!


Anmelden zum Antworten