gpt4 book ai didi

c# - 如何在 Ado.Net 中使用 DataReader 将 varchar 获取为 byte[]?

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:14 27 4
gpt4 key购买 nike

如何在 Ado.Net 中使用 DataReader 获取 varchar 作为 byte[] 数据?我们试过下面的代码。

if (!objDataReader.IsDBNull(i))
{
long len = objDataReader.GetBytes(i, 0, null, 0, 0);

byte[] buffer = new byte[len];
objDataReader.GetBytes(i, 0, buffer, 0, (int)len);

}

但是上面的代码给出了错误(“无法将‘System.String’类型的对象转换为类型‘System.Byte[]’。”)

更新:

当列的值为 null 并且我删除了 dbnull 条件时,执行以下代码行会出现错误“无法将类型为‘System.DBNull’的对象转换为类型‘System.Byte[]”

long len = objDataReader.GetBytes(i, 0, null, 0, 0);
byte[] buffer = new byte[len];
objDataReader.GetBytes(i, 0, buffer, 0, (int)len);

最佳答案

varchar 字段应该存储文本,而不是原始字节。如果要存储不透明的二进制数据,请使用 imagebinary

如果你想获取表示特定编码中某些文本的字节,你可以使用 Encoding.GetBytes - 但你需要指定编码,例如Encoding.UTF8.GetBytes(文本)。但是,这可能不是它在数据库中的表示方式。关键是它是文本数据,所以确切的二进制表示应该无关紧要,只要您可以准确地重现 Unicode 字符串即可。

你在这个字段中存储了什么?

关于c# - 如何在 Ado.Net 中使用 DataReader 将 varchar 获取为 byte[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2553285/

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