为什么MySQL查询在VB.net中将整型列读取为字节数组?
我有一个简单的MySQL表,其中包含一个包含整数值和空值的“Age”列为什么MySQL查询在VB.net中将整型列读取为字节数组?,mysql,vb.net,.net-3.5,integer,bytearray,Mysql,Vb.net,.net 3.5,Integer,Bytearray,我有一个简单的MySQL表,其中包含一个包含整数值和空值的“Age”列 Customers +--------------+--------------+ .... +------------+ | Name | Location | | Age | +--------------+--------------+ .... +------------+ | Murphy | US
Customers
+--------------+--------------+ .... +------------+
| Name | Location | | Age |
+--------------+--------------+ .... +------------+
| Murphy | US | | 23 |
| Pierre | France | | 42 |
| Rafael | Spain | | null |
| Paulo | Italy | | 21 |
+--------------+--------------+ .... +------------+
姓名和位置为类型varChar
,年龄为类型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)
。。。数据集ds
中的年龄列在每个单元格中都有System.Byte[]
,而不是整数值
为什么会发生这种情况?请确保“年龄”列只返回整数值 将您的选择更改为
SELECT Name,Location,IFNULL(Age,0) AS Age FROM Customers;
另一项检查,您的数据集是否允许dbnull?有一个属性可以更改。也许你也可以试试你的初始
SELECT*FROM Customers代码>尝试确保“年龄”列只返回整数值
将您的选择更改为
SELECT Name,Location,IFNULL(Age,0) AS Age FROM Customers;
另一项检查,您的数据集是否允许dbnull?有一个属性可以更改。也许你也可以试试你的初始SELECT*FROM Customers代码>您是否尝试将其分配给datatable而不是dataset?请尝试使用类似这样的select,以查看其是否有效。从客户中选择名称、位置、IFNULL(年龄,0)作为年龄@KayNelson Yeah IFNULL(年龄,0)似乎做到了这一点。谢谢不知道为什么。我可以加上它作为答案吗?我认为数据集会识别空值并更改数据类型。您是否尝试将其分配给datatable而不是dataset?请尝试使用类似这样的select,以查看它是否有效。从客户中选择名称、位置、IFNULL(年龄,0)作为年龄@KayNelson Yeah IFNULL(年龄,0)似乎做到了这一点。谢谢不知道为什么。我可以加上它作为答案吗?我认为数据集识别空值并更改数据类型。