预期类型是Int32。 ---> System.FormatException:输入字符串的格式不正确

时间:2016-06-20 21:57:56

标签: vb.net datatable

关于此代码:

    Public Const NameColumn As String = "nameColumn"
    ...
    Dim dataTable As New System.Data.DataTable
    DataTable.Columns.Add(NameColumn, Type.GetType("System.String"))
    DataTable.Columns.Add(AddressColumn, Type.GetType("System.String"))
    DataTable.Columns.Add(CityColumn, Type.GetType("System.String"))
    Dim dataRow As DataRow = dataTable.NewRow
    dataRow(NameColumn) = Name 'exception here

请注意,Namestring。我已经尝试将“Bob”和“”等值分配给“Name”。我也尝试将“Bob”直接分配给`dataRow(NameColumn) 我得到了这个例外;

  

System.ArgumentException:输入字符串的格式不正确。   无法存储<>在NameColumn列中。预期类型是Int32。 --->   System.FormatException:输入字符串的格式不正确。

这些工作:

dataRow(NameColumn) = 123 'NO exception here
dataRow(NameColumn) = "123" 'NO exception here

这是意料之外的,因为我将列类型设置为System.String。问题仅发生在第一列。第二和第三项工作就好了:

Dim dataRow As DataRow = dataTable.NewRow
dataRow(AddressColumn) = "123 Sesame St." ' No exception here
Dim dataRow As DataRow = dataTable.NewRow
dataRow(CityColumn) = "Brooklyn" 'NO exception here

是否预期第一列是int(一个Id)?

编辑: 问题可能只在于第一列。我已经修改了这个问题以显示多个专栏。第2列,第3列工作正常,但我只是发现了这一点,因为异常导致应用程序崩溃。添加上面的代码以反映这一点。

0 个答案:

没有答案