1

我有一个简单的 MySQL 表,其中包含一个带有整数和空值的“年龄”列。

    Customers
    +--------------+--------------+ .... +------------+
    |    Name      |   Location   |      |     Age    |
    +--------------+--------------+ .... +------------+
    |   Murphy     |     US       |      |      23    |
    |   Pierre     |     France   |      |      42    |
    |   Rafael     |     Spain    |      |     null   |
    |   Paulo      |     Italy    |      |      21    |
    +--------------+--------------+ .... +------------+

Name 和 Location 是 type varChar, Age 是 type int

但是,当我尝试在我的 VB.net 代码中读取它时...

Dim connStr as string = Session("connectionString") 'My Connection String'
Dim sql As String = "SELECT * FROM Customers;"
Dim conn As MySqlConnection = New MySqlConnection(connStr)
conn.Open()
Dim da As MySqlDataAdapter = New MySqlDataAdapter(sql , conn)
Dim ds as new dataset
da.Fill(ds)

...数据集中的 Age 列在每个单元格中ds都有System.Byte[],而不是整数值。

为什么会这样?

4

1 回答 1

1

尝试确保 Age 列仅返回整数值。

将您的选择更改为

SELECT Name,Location,IFNULL(Age,0) AS Age FROM Customers;

另一个检查,您的数据集是否允许 dbnull?有一个属性可以更改。也许也可以尝试一下您的初始SELECT * FROM Customers;

于 2013-11-05T15:44:37.053 回答