将插入字符串构建到 sql 存在来自 CSV/Json 的问题

Building insert string to sql has problems from CSV/Json

我正在尝试从 .CSV 文件构建字符串。我将其转换为 Json 并想为我的 SQL 服务器构建一个插入语句。

我正在使用 ChoETL nuget 从 csv 转换为 json。

当我构建我的字符串时,我得到了这个:

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

如您所见,在 1000 位之后。有一个 ' 字符。这使我的字符串导致错误,因为它结束了字符串。

如何删除这个 ' 角色或做一些聪明的事情?

只需在它旁边用另一个单引号转义它。您仍会在数据中保留该单引号。

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

一旦有了 JSON 字符串,就不要将其粘贴到 SQL 语句中。请改用参数。

这解决了您的问题,并且保护您免受SQL注入攻击。

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