Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Fügen Sie das Byte-Array IN den varbinary(max)-Datensatz ein

Verwenden Sie eine gespeicherte Prozedur, erstellen Sie einfach einen Parameter vom Typ varbinary(max) und fügen Sie ihn wie jeden anderen Datentyp in die Tabelle ein.

Fügen Sie in Ihrem C#-Code (oder VB oder was auch immer) einen Parameter zu Ihrem SQL-Befehlsobjekt hinzu und legen Sie das Byte-Array als Parameterwert fest:

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

Wenn Sie keine gespeicherte Prozedur verwenden, können Sie wahrscheinlich dasselbe mit einer parametrisierten SQL-Anweisung tun, aber ich habe das nie versucht, daher kann ich kein Beispiel geben.

Bearbeiten:

Sie verwenden eine parametrisierte Abfrage, was nicht mein Ding ist, daher kann ich nicht garantieren, dass dies funktioniert. Aber hier ist ein Code, der Sie zum Laufen bringen sollte.

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

Der Binärwert muss als Parameter (@bin_value) dargestellt werden, und der Wert wird durch die AddWithValue-Anweisung festgelegt. Der Parametername muss nicht mit dem Spaltennamen übereinstimmen.

Ein paar Anmerkungen:Ich würde vorschlagen, Spaltennamen in Ihrer Einfügeanweisung zu verwenden, anstatt von der Spaltenposition abzuhängen. Außerdem weiß ich nicht, was Sie mit "Tabelle (1)" meinen - ist das tatsächlich der Name der Tabelle?