Построение строки вставки в sql имеет проблемы с CSV/Json

Я пытаюсь построить строку из .CSVфайл. Я конвертирую его в Json и хочу создать оператор вставки для моего SQL Server.

Я использую ChoETL nuget для преобразования из csv в json.

Когда я строю свою строку, я получаю следующее:

Insert into dbo.JsonMeta (Json) values('{
  "ID": "xxxxx",
  "FLYTTEDATO": "01/02/2020",
  "FLYTTE_TIDSPUNKT": "1000'"
}')

Как видно после цифры 1000. E сть'персонаж. И это заставляет мою строку вызывать ошибку, потому что она заканчивает строку.

Как мне удалить это ' персонаж или сделать что-нибудь умное?

2 ответа

Решение

Если у вас есть строка JSON, не вставляйте ее в оператор SQL. Вместо этого используйте параметр.

Это решает вашу проблему и защищает вас от атак SQL-инъекций.

Insert into dbo.JsonMeta (Json) values(@json)

Просто поставьте рядом с ним еще одну одинарную кавычку. Вы все равно сохраните эту одинарную кавычку в данных.

Insert into dbo.JsonMeta (Json) values('{
  "ID": "xxxxx",
  "FLYTTEDATO": "01/02/2020",
  "FLYTTE_TIDSPUNKT": "1000''"
}')
Другие вопросы по тегам