如何在C#中读取SQL二进制字段

3
我有一个SQL表格,其中有一个二进制列,里面存储了二进制数据。例如:0x9A8B9D9A002020202020202020202020。我正在使用LINQ上下文从这个表格中获取数据。有人可以帮我获取数据吗?以下是我正在使用的示例代码。

可能是重复问题:
使用Linq to SQL查询SELECT @@DBTS
Sql二进制到C# - 如何获得二进制的SQL等效项

IEnumerable<byte[]> query = context
                .ExecuteQuery<byte[]>("select empPWD from Employee where employeeId = E32");

当我运行这段代码时,它会出现错误,类似于需要进行映射。
具体的错误信息如下:
“类型 'System.Byte[]' 必须声明一个默认的(无参数的)构造函数,以便在映射期间被构造。”
如果有人知道,请帮助我解决这个问题。

2
如果你需要帮助,请发布精确的错误信息。 - Security Hound
列类型是什么?图像?varbinary? - Panagiotis Kanavos
@Ramhound - 请查看我的编辑以获取精确的错误信息。该列类型为二进制(16)。 - VJOY
嗯,你需要看一下这个网址:https://dev59.com/t0bRa4cB1Zd3GeqP03-R - V4Vendetta
@V4Vendetta - 它返回一个整数形式。我能直接将其作为字符串获取吗? - VJOY
虽然它已经关闭了,但它并没有解决我的问题。 - VJOY
1个回答

0

你能重构它吗:

IEnumerable<System.Data.Linq.Binary> query = 
           context.Employees.Where(e => e.employeeId == "E32").Select(e => e.empPWD);

我认为这应该可以(假设您的上下文包含一个Employees表类)。要访问byte[],请在System.Data.Linq.Binary类型的每个实例上使用ToArray()。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接