C# 从 SqlDataReader 获取 byte[]?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13948235/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 10:11:45  来源:igfitidea点击:

Get byte[] from the SqlDataReader?

c#asp.netsqlbytearray

提问by akshaykumar6

I have table with varbinary(MAX)parameter. After executing the query, i will store the result in SqlDataReader as it has multiple columns as output.

我有带有varbinary(MAX)参数的表。执行查询后,我将结果存储在 SqlDataReader 中,因为它有多个列作为输出。

SqlCommand cmd = new SqlCommand("select leave_details from LeaveTable");
SqlDataReader obj;
con.Open();
obj = cmd.ExecuteReader();

Now I want to convert the result for each row into byte[].

现在我想将每一行的结果转换为 byte[]。

This one is not working : :

这个不起作用::

byte[] b=null;
obj.GetBytes(0,0,b,0,1024);

采纳答案by adatapost

Try GetValue()method.

尝试GetValue()方法。

byte[] b=null;
b=(byte [])obj.GetValue(0);
//OR
b=(byte [])obj[0];

回答by Mahdi Tahsildari

string bytesfromsql = "01010101010110010111010001"; //for example
byte[] bytes = new byte[bytesfromsql.Length];
for (int i = 0; i < bytes.Count(); i++)
{
   bytes[i] = byte.Parse(bytesfromsql[i].ToString());
}