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