How convert a Byte[] to a data to insert a value in a varbinary(max) column in SQL Server?

11,098

Solution 1

Create a Console Application project and try this code

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

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

CREATE PROCEDURE YourStoredProc
    @data varbinary(max)
AS
BEGIN
  -- your code
END
Share:
11,098
Álvaro García
Author by

Álvaro García

Updated on June 26, 2022

Comments

  • Álvaro García
    Álvaro García almost 2 years

    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 convert the byte[] to the correct value for T-SQL for the insert.

    Thanks.