我想插入这个字节数组到一个SQL Server数据库中,列数据类型为varbinary
,这是我在C#代码插入字节数组从C#SQL Server和如何检索
SqlParameter param = new SqlParameter("@buffer", SqlDbType.VarBinary, 8000);
param.Value = buffer;
string _query = "INSERT INTO [dbo].[Files] (FileID, Data, Length) VALUES ('" + uID + "','" + buffer + "','" + buffer.Length + "')";
using (SqlCommand comm = new SqlCommand(_query, conn))
{
comm.Parameters.Add(param);
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch (SqlException ex)
{
return Request.CreateResponse(HttpStatusCode.OK, "Something went wrong : " + ex.Message);
}
finally
{
conn.Close();
}
}
我也@buffer
试了_query
字符串,而不是缓冲区内,但我不断收到错误:
从varchar到VARBINARY转换是不允许使用convert命令来执行这个查询
,我用Convert
和保存成功,但是当我找回它,它检索前14个字节而已,
byte[] bytearr = (byte[])row["Data"];
我一直在寻找,并没有发现什么。你能帮我存储字节并检索它吗?
varbinary列的长度是什么,因为它是在SQL中配置的? – RQDQ
这个问题为什么得到-1? – IAbstract
您可以使用存储过程,还是必须特设? – dean