我想将二进制数据从DataTable一个字节数组中获取.但是下面的代码返回
无法将源类型'string'转换为目标类型'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());
}
Run Code Online (Sandbox Code Playgroud)
如何从StackOverflow表中获取binaryData?
StackOverflow table
----------------------
Id int
BinaryData varbinary(max)
Run Code Online (Sandbox Code Playgroud)
如果你打电话.ToString(),你会得到一个字符串 ; 相反,简单地施放:
byteArray = (byte[])dataTable.Rows[0]["BinaryData"];
Run Code Online (Sandbox Code Playgroud)
但是,这里没有必要DataTable.就个人而言,我只是使用:
var byteArray = conn.Query<byte[]>(
"SELECT BinaryData FROM StackOverflow WHERE Id=@id",
new {id}).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
使用dapper,或者只ExecuteScalar使用ADO.NET:
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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4185 次 |
| 最近记录: |