【问题标题】:bulk upload into sql批量上传到sql
【发布时间】:2014-02-19 11:19:13
【问题描述】:

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

【问题讨论】:

  • 请发布您遇到的错误。
  • 红色曲线出现在 +"' 下方,将鼠标悬停在它上面会出现 NewLine Constant Error

标签: c# sql newline bulkinsert


【解决方案1】:

使用以下代码:

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

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

【讨论】:

    【解决方案2】:

    您永远不应该以这种方式指定参数。使用 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,""));
    

    【讨论】:

    • 当我使用上面你第一次给它的代码时,它会用绿色下划线表示它已经过时并且已被弃用。当我输入第二个代码时,它说“环境”在当前上下文中不存在?
    • 我已更新答案以修复过时的问题。关于第二期,你确定你有using System;
    • 现在构建中没有错误,但是当我运行代码时它会中断并导致错误消息指出@FilePath 附近的语法不正确
    • 阿隆,这就是我要找的。非常感谢您的耐心等待。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多