【发布时间】:2011-10-11 10:24:57
【问题描述】:
我正在尝试从 SQL Server 获取 varbinary(MAX) 到 C# 中的 byte[] 变量。
我该怎么做?
谢谢
【问题讨论】:
标签: c# sql-server-2008 byte varbinarymax
我正在尝试从 SQL Server 获取 varbinary(MAX) 到 C# 中的 byte[] 变量。
我该怎么做?
谢谢
【问题讨论】:
标签: c# sql-server-2008 byte varbinarymax
private static byte[] getDocument(int documentId)
{
using (SqlConnection cn = new SqlConnection("..."))
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandText = @"
SELECT DocumentData
FROM Document
WHERE DocumentId = @Id";
cm.Parameters.AddWithValue("@Id", documentId);
cn.Open();
return cm.ExecuteScalar() as byte[];
}
}
【讨论】:
您必须选择 DATALENGTH(data) 和数据
data 是你的 varbinary(max)
int i=0;
long dataLen = dr.GetInt64(i++);
if (dataLen > 0)
{
Data = new byte[dataLen];
dr.GetBytes(i++, 0, Data, 0, (int)dataLen);
}
【讨论】: