vb.net sql параметр неверный синтаксис рядом со значением - PullRequest
0 голосов
/ 24 марта 2019

Я новичок здесь, я пытаюсь преобразовать целое число в varbinary для вставки в уже созданную таблицу SQL. Я включил код, у меня неправильный синтаксис около "523641", то есть HOUSE_ID, который я пытаюсь преобразовать.

Я также преобразовал int в байтовый массив и добавил в команду параметр, но результат тот же

Dim varbin As String = " convert(varbinary, '" & houseid & "')"
obj = objCon.CreateCommand()
strSQL = "insert into " & tbl & " (hello, HOUSE_ID, world) VALUES ('" & hello & "','" & varbin & "','" & world & "')"
obj.CommandText = strSQL
obj.ExecuteNonQuery()

Ожидаемый результат - помещение этого 523641 в столбец varbinary(50).

1 Ответ

1 голос
/ 24 марта 2019

Не знаю, почему вы хотите сохранить целое число в столбце varbinary, но вы можете использовать BitConverter вместе с параметризованным запросом.Всегда используйте параметры вместо конкатенации строк для значений, которые варьируются в зависимости от исполнения, поскольку параметры имеют ряд преимуществ для безопасности, производительности и простоты использования.

Dim varbin As Byte() = BitConverter.GetBytes(houseid)
obj = objCon.CreateCommand()
strSQL = "insert into " & tbl & " (hello, HOUSE_ID, world) VALUES (@hello, @varbin, @world);"
obj.Parameters.Add("@hello", SqlDbType.VarChar, 50).Value = hello
obj.Parameters.Add("@varbin", SqlDbType.VarBinary, 50).Value = varbin
obj.Parameters.Add("@world", SqlDbType.VarChar, 50).Value = world
obj.CommandText = strSQL
obj.ExecuteNonQuery()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...