Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从CSV/Json生成sql插入字符串时出现问题_C#_Sql Server_Tsql_Choetl - Fatal编程技术网

C# 从CSV/Json生成sql插入字符串时出现问题

C# 从CSV/Json生成sql插入字符串时出现问题,c#,sql-server,tsql,choetl,C#,Sql Server,Tsql,Choetl,我正在尝试从.CSV文件构建字符串。我将其转换为Json,并希望为我的SQL Server构建一个insert语句 我正在使用ChoETL nuget将csv转换为json 当我构建字符串时,我得到以下结果: Insert into dbo.JsonMeta (Json) values('{ "ID": "xxxxx", "FLYTTEDATO": "01/02/2020", "FLYTTE_TIDSPUNKT": "1000'" }') 正如你在1000位之后看到的。有一个”字符

我正在尝试从
.CSV
文件构建字符串。我将其转换为Json,并希望为我的SQL Server构建一个insert语句

我正在使用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)

这句话从何而来?最简单的方法是修复JSON生成器。或者,如果单引号是实数,则应使用参数化查询,使其不会与外部引号冲突。它来自数据。它已经在CSV文件中。它不能改变。It i系统从另一个平台交付。