Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insérer un tableau d'octets dans l'enregistrement varbinary (max)

À l'aide d'une procédure stockée, créez simplement un paramètre de type varbinary(max) et insérez-le dans la table comme vous le feriez pour n'importe quel type de données.

Dans votre code c# (ou vb ou autre), ajoutez un paramètre à votre objet de commande sql et définissez le tableau d'octets comme valeur de paramètre :

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

Si vous n'utilisez pas de procédure stockée, vous pouvez probablement faire la même chose avec une instruction sql paramétrée, mais je n'ai jamais essayé cela, donc je ne peux pas donner d'exemple.

Modifier :

Vous utilisez une requête paramétrée, ce qui n'est pas mon truc, donc je ne peux pas garantir que cela fonctionnera. Mais voici un code qui devrait vous aider à démarrer.

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

La valeur binaire doit être représentée sous la forme d'un paramètre (@bin_value) et la valeur est définie par l'instruction AddWithValue. Le nom du paramètre ne doit pas nécessairement correspondre au nom de la colonne.

Quelques remarques :je suggérerais d'utiliser les noms de colonnes dans votre instruction d'insertion plutôt que de dépendre de la position de la colonne. De plus, je ne sais pas ce que vous entendez par 'table (1)' - est-ce en fait le nom de la table ?