0

我有数据列类型:system.int32我想在其中保存一个普通的整数值。

  • 例如

    我想将整数“1”保存到 system.int32 列中。

  • 然后抛出一个异常,上面写着

“该值大于此列的最大长度”。

有人有想法吗?

编辑:

这是代码:

Dim reader As OleDbDataReader = Nothing
    Dim schemaTable As DataTable = New DataTable
    Dim dt As DataTable = New DataTable




        sql = "SELECT * from " & TabName
        mCmd.CommandText = sql
        reader = mCmd.ExecuteReader(CommandBehavior.KeyInfo)
        schemaTable = reader.GetSchemaTable()

        Dim dc As DataColumn
        Dim key As Integer = 0
        Dim ColumnOrdinal As Integer
        For Each myField As DataRow In schemaTable.Rows
            dc = New DataColumn
            For Each myProperty As DataColumn In schemaTable.Columns
                ' Console.WriteLine(myProperty.ColumnName + " = " + myField(myProperty).ToString())
                System.Diagnostics.Debug.WriteLine(myProperty.ColumnName + " = " + myField(myProperty).ToString())
                If myProperty.ColumnName = "ColumnName" Then dc.ColumnName = myField(myProperty)
                If myProperty.ColumnName = "ColumnOrdinal" Then ColumnOrdinal = myField(myProperty)
                If myProperty.ColumnName = "DataType" Then dc.DataType = myField(myProperty)
                If myProperty.ColumnName = "IsAutoIncrement" Then dc.AutoIncrement = myField(myProperty)
                If myProperty.ColumnName = "ReadOnly" Then dc.ReadOnly = myField(myProperty)
                If myProperty.ColumnName = "IsUnique" Then dc.Unique = myField(myProperty)
                If myProperty.ColumnName = "ColumnSize" Then dc.MaxLength = myField(myProperty)
                If myProperty.ColumnName = "IsKey" AndAlso myField(myProperty) = True Then key = ColumnOrdinal
                ' System.Diagnostics.Debug.WriteLine(myProperty.DataType)
            Next
            If dc.AutoIncrement = False Then
                dt.Columns.Add(dc)
            End If
        Next

当在这一行 myProperty 传递 datatyp Int32

 If myProperty.ColumnName = "DataType" Then dc.DataType = myField(myProperty)

在填充上面创建的数据表时出现异常。这是代码:

  Dim reader As StreamReader = Nothing
  reader = New StreamReader(File, Encoding.Default)

 Do Until reader.EndOfStream                         
     Textzeile = reader.ReadLine()
     spalten = reader.ReadLine().Split(";"c) 
     Dim dr As DataRow = Nothing 
     dr =dt.NewRow() 
     For i As Integer = 0 To dt.Columns.Count - 1
           dr(i) = spalten(i)
     Next
     dt.Rows.Add(dr)  
     .
     .
     .

在这一行抛出异常

dt.Rows.Add(dr) 

Edit2:问题解决了。当我们注释掉 Columnsize 时,它​​起作用了。我很想知道它现在为什么起作用。Columnsize 用 4 初始化,因为它不起作用。

4

0 回答 0