Skip to content Skip to sidebar Skip to footer

How Convert A Byte[] To A Data To Insert A Value In A Varbinary(max) Column In Sql Server?

I have a object with a byte[] property, and I would like to convert this value to the correct value to can insert it into the database using T-SQL. But I don't know how I could con

Solution 1:

Create a Console Application project and try this code

// Sample ClasspublicclassMyClass
{
    publicbyte[] data;
}

// Main staticvoidMain(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();
        }
    }
}

Solution 2:

You want to convert to VarBinary.

See the following:

SQL Server Data Type Mappings

simple example (setting command parameter)

byte[] data;
command.Parameters.Add("@data", SqlDbType.VarBinary).Value = data;

T-SQL example of how to pass in varbinary

CREATEPROCEDURE YourStoredProc
    @datavarbinary(max)
ASBEGIN-- your codeEND

Solution 3:

Generating raw varbinary to insert to database (copy-paste case)

stringToVarbinary(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();
    }

Post a Comment for "How Convert A Byte[] To A Data To Insert A Value In A Varbinary(max) Column In Sql Server?"