有没有办法将C#字符串插入SQL varbinary列?

时间:2013-04-10 20:55:52

标签: c# sql-server

我在C#中使用SqlConnectionSqlCommand将字符串行(通过Parameters.AddWithValue)插入SQL Server。我需要插入的一列是Varbinary。有没有办法在C#或SQL Server中进行转换?

1 个答案:

答案 0 :(得分:2)

根据this answer,您可以使用CONVERT函数将字符串插入VARBINARY列。确保使用正确的编码,如答案中所述。

insert Table_2 (Test) values( CONVERT(varbinary(30), N'this is a test') ) 
select * from Table_2
select CONVERT(nvarchar(30), test) from Table_2

所以C#代码看起来像

    // Get from config
    string connectionString = "";

    using (var conn = new SqlConnection(connectionString))
    {
        string sql = "insert Table_2 (Test) values( CONVERT(varbinary(30), @nvarcharParam) )";
        using (var cmd = new SqlCommand(sql, conn))
        {
            var param = cmd.Parameters.AddWithValue("nvarcharParam", "This is a test");
            param.DbType = DbType.String;

            cmd.ExecuteNonQuery();
        }
    }