创建新鲜DB后,在C#中插入批量插入.之后失败.总是在控制台中工作



这是我正在执行的SQL命令:

DECLARE @SQLString nvarchar(4000);
SET @SQLString = N'BULK INSERT events FROM '+ QUOTENAME(@p0) +' WITH ( FIELDTERMINATOR = ''|'', ROWTERMINATOR =''n'' )'
EXECUTE sp_executesql @SQLString

参数 @p0是CSV文件的路径,并与command.parameters.AddWithValue

添加

当我删除数据库并让我的程序从头开始创建它,然后让它写入其中时,这可以正常工作。

但是,当我关闭并重新打开应用程序并使用现在现有的DB时,它会失败。

错误是:

{"批量加载数据转换错误(键入不匹配或无效字符 对于第1行的指定编码),第4列(时间戳)。 r nbulk 加载数据转换错误(输入不匹配或无效字符 第2行,第4列(时间戳)的指定代码epage)。 r nbulk负载数据 转换错误(为指定的不匹配或无效字符 第3行,第4列(时间戳)。 r nbulk加载数据 转换错误(为指定的不匹配或无效字符 第4行,第4列(时间戳)。 r nbulk加载数据 转换错误(为指定的不匹配或无效字符 第5行,第4列(时间戳)。 r nbulk加载数据 转换错误(为指定的不匹配或无效字符 第6行,第4列(时间戳)。 r nbulk加载数据 转换错误(为指定的不匹配或无效字符 第7行,第4列(时间戳)。 r nbulk负载数据 转换错误(为指定的不匹配或无效字符 第8行,第4列(时间戳)。 r nbulk加载数据 转换错误(为指定的不匹配或无效字符 第9行,第4列(时间戳)。 r nbulk加载数据 转换错误(为指定的不匹配或无效字符 第10行,第4列(时间戳)。 r nbulk加载数据 转换错误(为指定的不匹配或无效字符 第11行第4列(时间戳)。 r ncannot批量负载 因为超过了最大错误(10)。 r n the ole db 链接服务器"(null)"的提供商" bulk "报告了一个错误。这 提供者没有提供有关该错误的任何信息。 r ncannot提取 链接服务器" bulk "的一行,用于链接服务器"(null)"。"}

当我通过SQL控制台中的查询使用完全相同的SQL命令时,它可以完美地工作。

奇怪的是(时间戳)不是第4列。它实际上是CSV中的第一列。如何使用控制台完全相同的查询,而有时(有时使用新DB)在C#?

感谢@johnbevan

实际上,当我创建数据库时,我也更改了目录。但是,当我使用已经存在的版本时,我没有调用更改tabase ...

最新更新