gpt4 book ai didi

mysql - 如何将 system.byte 转换为 MySQL Bit 类型?

转载 作者:行者123 更新时间:2023-11-29 21:31:19 27 4
gpt4 key购买 nike

我有一个 MySQL 数据库(5.6 Community),其中有一列类型为 bit(60)。该字段包含 1001、0011 等值。我试图通过 vb.net 适配器将字符串“1010”传递到数据库。如果我使用常规查询,它将如下所示:

insert into my_table (my_bit_field) values (b'1010');

这可以工作并完全按照所示插入字符串,但我需要使用数据适配器,因此我无法直接发送查询。

在 vb.net 中使用数据适配器时,我收到一条错误消息,指出它需要一个字节数组。所以我尝试使用它:

System.Text.Encoding.ASCII.GetBytes("1010")

但它只是将其转换为字节的 ASCII 表示形式 (49,48,49,48)。

有没有更好的方法来通过数据适配器并且有办法做到这一点?

谢谢。

最佳答案

在这种情况下,您可以尝试以下方法将字符串转换为字节数组:

Dim bytes() As Byte = { Convert.ToByte("1010", 2) }

但是,一旦字符串中的位数超过 8 位,这种情况就会中断。您可以(也许应该)将字符串分成字节大小的部分并将每个部分转换为一个字节,例如 this question 。由于您有一个 bit(60) 列,您也可以稍微作弊并使用如下所示的内容:

Dim inputValue As String = "000100000010000000110000010000000101000001100000011100001000"
If inputValue.Length > 60 Then ' up to 64 could be supported
' Error
End If
Dim longValue As ULong = Convert.ToUInt64(inputValue, 2)
Dim bytes() As Byte = BitConverter.GetBytes(longValue)
If BitConverter.IsLittleEndian Then
Array.Reverse(bytes)
End If

这将为您提供字节数组,您可以在未显示的数据适配器代码中使用该数组。

关于mysql - 如何将 system.byte 转换为 MySQL Bit 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229709/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com