sql >> Base de Datos >  >> RDS >> Sqlserver

Insertar matriz de bytes EN el registro varbinary (max)

Usando un procedimiento almacenado, simplemente cree un parámetro de tipo varbinary(max) e insértelo en la tabla como lo haría con cualquier tipo de datos.

En su código c# (o vb o lo que sea), agregue un parámetro a su objeto de comando sql y establezca la matriz de bytes como el valor del parámetro:

command.Parameters.AddWithValue("@parameter_name", myByteArray);

Si no usa un procedimiento almacenado, probablemente pueda hacer lo mismo con una instrucción sql parametrizada, pero nunca lo he intentado, así que no puedo dar un ejemplo.

Editar:

Está utilizando una consulta parametrizada, que no es lo mío, por lo que no puedo garantizar que esto funcione. Pero, aquí hay un código que debería ponerte en marcha.

RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;

El valor binario debe representarse como un parámetro (@bin_value) y el valor lo establece la instrucción AddWithValue. El nombre del parámetro no tiene que coincidir con el nombre de la columna.

Un par de notas:sugeriría usar nombres de columnas en su declaración de inserción en lugar de depender de la posición de la columna. Además, no sé a qué se refiere con 'tabla (1)'. ¿Es ese realmente el nombre de la tabla? /P>