gpt4 book ai didi

c# - 从数据表分配二进制数据

转载 作者:太空狗 更新时间:2023-10-30 01:05:43 31 4
gpt4 key购买 nike

我想从 DataTable 中获取二进制数据到字节数组。但是下面的代码返回

cannot convert source type 'string' to target type 'byte[]'

DataTable dataTable = DB.GetData("SELECT * FROM StackOverflow WHERE Id = '" + id + "'");

byte[] byteArray = null;


if(dataTable.Rows.Count > 0)
{
byteArray = dataTable.Rows[0]["BinaryData"].ToString());
}

如何从 StackOverflow 表中获取二进制数据?

StackOverflow table 
----------------------
Id int
BinaryData varbinary(max)

最佳答案

如果调用 .ToString(),您将得到一个字符串;相反,只需投:

byteArray = (byte[])dataTable.Rows[0]["BinaryData"];

但是,这里不需要DataTable。就个人而言,我只是使用:

var byteArray = conn.Query<byte[]>(
"SELECT BinaryData FROM StackOverflow WHERE Id=@id",
new {id}).FirstOrDefault();

在 ADO.NET 中使用 dapper,或仅使用 ExecuteScalar:

byte[] byteArray;
using(var cmd = conn.CreateCommand()) {
cmd.CommandText = "SELECT BinaryData FROM StackOverflow WHERE Id=@id";
cmd.Parameters.AddWithValue("id",id);
byteArray = (byte[])cmd.ExecuteScalar();
}

关于c# - 从数据表分配二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17671841/

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