批量上传到sql

时间:2014-01-28 08:52:58

标签: c# sql newline bulkinsert

我正在使用此代码尝试将.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))

2 个答案:

答案 0 :(得分:1)

使用以下代码:

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

它将从字符串

中删除新的行字符

答案 1 :(得分: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,""));