将数据表列中的字节数组转换为字符串?

Posted

技术标签:

【中文标题】将数据表列中的字节数组转换为字符串?【英文标题】:Convert a byte array in a datatable column to string? 【发布时间】:2010-11-22 05:26:13 【问题描述】:

我有一个数据表 customerTbl,我逐行浏览

foreach (DataRow row in customerTbl.Rows)

         string CustomerID = row["Customer ID"].ToString();

但是,客户 ID 列返回 byte[]。如何将其转换为字符串 (CustomerID)?

我尝试了类似的东西

string CustomerID = Convert.ToBase64String(row["Customer ID"]);

但它显然不起作用

提前致谢

【问题讨论】:

为什么CustomerId首先是byte[] 客户 ID 应该是什么样的?是文字吗?还是只是一个数字? Convert.ToBase64String,正如包装上所说的那样:它转换为base64 string。为什么要查看字符串?干什么用的? 客户 ID 是文本和数字,在新数据库中我们有正确的 ID,但我仍然需要将其发送过来以供其他参考。另一个数据库只接受我想要这个 ID 的列中的字符串。 【参考方案1】:

根据字节的编码,您需要正确的Encoding 对象来执行转换。假设它是 ASCII,你可以这样做:

string customerID = Encoding.ASCII.GetString((byte[])row["Customer ID"]);

如果使用不同的编码(UTF8、UTF16 等),请使用适当的编码。

【讨论】:

嗨,杰夫,我得到“错误 1 ​​'System.Data.DataRow' 不包含 'Field' 的定义,并且没有扩展方法 'Field' 接受类型为 'System.可以找到 Data.DataRow'(您是否缺少 using 指令或程序集引用?)" 你需要一个演员而不是使用Field()扩展方法。由于您已添加它是 C#2.0,因此扩展方法不可用。 好的,谢谢,现在可以使用了。抱歉,我忘了从头开始添加 2.0。

以上是关于将数据表列中的字节数组转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章

使用数组和队列的方式解析字节

如何将十六进制字符串转换为字节数组,以及十六进制字符串中的字节数组?

将 ctype 字节数组转换为字节

如何将字节数组的字符串转换为字节数组

将字节数组转换为字符串 spark

如何将 varbinary 数据(作为字符串)转换为字节数组?