Álv*_*cía 3 c# t-sql sql-server ado.net
我有一个带有byte[]属性的对象,我想将此值转换为正确的值,以便可以使用T-SQL将其插入数据库.
但我不知道如何将byte[]插入的T-SQL 转换为正确的值.
谢谢.
您想要转换为VarBinary.
请参阅以下内容:
简单示例(设置命令参数)
byte[] data;
command.Parameters.Add("@data", SqlDbType.VarBinary).Value = data;
Run Code Online (Sandbox Code Playgroud)
如何传入varbinary的T-SQL示例
CREATE PROCEDURE YourStoredProc
@data varbinary(max)
AS
BEGIN
-- your code
END
Run Code Online (Sandbox Code Playgroud)
创建一个控制台应用程序项目并尝试此代码
// 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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
生成原始 varbinary 以插入数据库(复制粘贴情况)
string ToVarbinary(byte[] data)
{
var sb = new StringBuilder((data.Length * 2) + 2);
sb.Append("0x");
for (int i = 0; i < data.Length; i++)
{
sb.Append(data[i].ToString("X2"));
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)