批量上传到sql

问题描述 投票:0回答:2

我正在使用此代码尝试将.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))
c# sql newline bulkinsert
2个回答
1
投票

使用以下代码:

FileUpload_TextBox.Text.Replace(Enviroment.NewLine,"")

它将从字符串中删除新的行字符


1
投票

你永远不应该那样指定参数。 使用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,""));
© www.soinside.com 2019 - 2024. All rights reserved.