如何将字节[]转换为数据以在SQL Server中的varbinary(max)列中插入值?
我有一个byte[]
属性的对象,我想将此值转换为正确的值,以便可以使用T-SQL将其插入到数据库中。如何将字节[]转换为数据以在SQL Server中的varbinary(max)列中插入值?
但我不知道如何将byte[]
转换为插入T-SQL的正确值。
谢谢。
创建控制台应用程序项目,并尝试这个代码
// Sample Class
public class MyClass
{
public byte[] data;
}
// Main
static void Main(string[] args)
{
MyClass cls = new MyClass();
using (SqlConnection cn = new SqlConnection("CONNECTION STRING"))
{
cn.Open();
using (SqlCommand cmd = new SqlCommand("insert into MyTable values (@data)", cn))
{
cmd.Parameters.AddWithValue("@data", cls.data);
cmd.ExecuteNonQuery();
}
}
}
您想转换为VarBinary。
参见以下:
简单的例子(设定命令参数)如何在VARBINARY通过
byte[] data;
command.Parameters.Add("@data", SqlDbType.VarBinary).Value = data;
T-SQL实例
CREATE PROCEDURE YourStoredProc
@data varbinary(max)
AS
BEGIN
-- your code
END
@ScottChamberlain刚刚更新的答案 –
这将是很好的告诉你如何使用参数查询过,如果OP从未使用参数之前,他可能不知道如何使用它。 –
感谢您使用AddWithValue。它帮助到我。 –
您正在调用的“添加”过载被标记为过时。你应该使用'.AddWithValue(“@ data”,cls.data);'或'.Add(“@ data”,SqlDbType.VarBinary).Value = cls.data;' –
@ScottChamberlain,谢谢你通知我。我更新了我的答案 – FLICKER