none
Probleme mit Datentyp einer DataTable.Column RRS feed

  • Frage

  • Hallo zusammen.

    Ich versuche momentan, den DataTables meines nicht typisierten DataSets (welches zur Laufzeit erstellt wird und dann in den Settings gespeichert wird) DataColumns  hinzuzufügen, deren DataType "Integer" sein sollen. Leider gelingt mir das nicht.

    Hier ein bisschen Code:

    My.Settings.DS = New DataSet("DS")
    With My.Settings.DS
      Dim DT0 As DataTable = .Tables.Add("DT0")
      Dim DT1 As DataTable = .Tables.Add("DT1")
      Dim DT2 As DataTable = .Tables.Add("DT2")
      With .Tables("DT0")
        Dim DT0DC0 As DataColumn = New DataColumn("DT0DC0", System.Type.GetType("Sytem.Int32"))
        Dim DT0DC1 As DataColumn = New DataColumn("DT0DC1", System.Type.GetType("Sytem.Int32"))
        Dim DT0DC2 As DataColumn = New DataColumn("DT0DC2", System.Type.GetType("Sytem.Int32"))
        Dim DT0DC3 As DataColumn = New DataColumn("DT0DC3", System.Type.GetType("Sytem.Int32"))
        .Columns.Add(DT0DC0)
        .Columns.Add(DT0DC1)
        .Columns.Add(DT0DC2)
        .Columns.Add(DT0DC3)
      End With
    End With

    Wenn der Code ausgeführt wird, endet dies immer mit der folgenden Fehlermeldung beim ersten "System.Type.GetType("System.Int32"):

    System.ArgumentNullException wurde nicht von Benutzercode behandelt.
      Message='dataType'-Argument darf nicht null sein.
    Parametername: dataType
      ParamName=dataType
      Source=System.Data
      StackTrace:
           bei System.Data.DataColumn..ctor(String columnName, Type dataType, String expr, MappingType type)
           bei System.Data.DataColumn..ctor(String columnName, Type dataType)

    Könnt Ihr mir sagen, was ich da falsch mache?

    Vielen Dank für Eure Hilfe

    VG Carsten

    Sonntag, 23. Juni 2013 16:10

Antworten

  • Hallo Carsten,

    kein Grund es so kompliziert zu machen, in Visual Basic is GetType als Operator enthalten, und dort kannst Du den Klassen-/Strukturnamen angeben:

      Dim DT0DC0 As DataColumn = New DataColumn("DT0DC0", GetType(Integer))
    Gruß Elmar

    • Als Antwort markiert C. Mehnert Dienstag, 25. Juni 2013 08:17
    Sonntag, 23. Juni 2013 18:23
    Beantworter

Alle Antworten

  • Hallo Carsten,

    kein Grund es so kompliziert zu machen, in Visual Basic is GetType als Operator enthalten, und dort kannst Du den Klassen-/Strukturnamen angeben:

      Dim DT0DC0 As DataColumn = New DataColumn("DT0DC0", GetType(Integer))
    Gruß Elmar

    • Als Antwort markiert C. Mehnert Dienstag, 25. Juni 2013 08:17
    Sonntag, 23. Juni 2013 18:23
    Beantworter
  • Hallo Elmar.

    Vielen Dank für Deine Hilfe; so funktioniert es.

    VG Carsten

    Dienstag, 25. Juni 2013 08:17