我正在使用此代码尝试将.csv文件上传到sql。 它在路径硬编码时有效但如果我尝试从文本框添加参数结果,则会导致NewLine in Constant错误。 我需要做些什么来纠正这个问题。
using (SqlCommand cmd = new SqlCommand(@"BULK INSERT Alpha.dbo.Beta
FROM '"+FileUpload_TextBox.Text+"'
WITH
(
FIELDTERMINATOR=',',
ROWTERMINATOR='\n',
FIRSTROW=2
)
", MyConnection))
使用以下代码:
FileUpload_TextBox.Text.Replace(Enviroment.NewLine,"")
它将从字符串中删除新的行字符
你永远不应该那样指定参数。 使用SQL参数 - 它可能会解决您的问题:
using (SqlCommand cmd = new SqlCommand(@"BULK INSERT Alpha.dbo.Beta
FROM @FilePath
WITH
(
FIELDTERMINATOR=',',
ROWTERMINATOR='\n',
FIRSTROW=2
)
", MyConnection))
{
cmd.Parameters.AddWithValue("@FilePath", FileUpload_TextBox.Text);
...
}
如果它仍然不起作用,请在添加参数时使用@Garath答案:
cmd.Parameters.AddWithValue("@FilePath",
FileUpload_TextBox.Text.Replace(Enviroment.NewLine,""));