2014-01-28 74 views
0

我正在使用此代碼嘗試將.csv文件上傳到sql。它適用於硬編碼路徑,但如果我嘗試從文本框中添加參數結果,則會導致NewLine出現常量錯誤。我需要做些什麼來糾正這個問題。批量上傳到sql

using (SqlCommand cmd = new SqlCommand(@"BULK INSERT Alpha.dbo.Beta 
     FROM '"+FileUpload_TextBox.Text+"' 
     WITH 
     (
      FIELDTERMINATOR=',', 
      ROWTERMINATOR='\n', 
      FIRSTROW=2 
     ) 
     ", MyConnection)) 
+0

請上傳你所得到的錯誤。 – bluejaded

+0

SQL注入警報! – rhughes

+0

紅色的波浪形狀出現在+「'下方並且在其上方懸停時出現NewLine常量錯誤 – AC3

回答

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,"")); 
+0

當我使用上面的代碼時,您首先給它指出它以綠色加下劃線表示它已過時並且已被棄用。第二個代碼說當前環境中不存在'Environment'? – AC3

+0

我已經更新瞭解決這個過時問題的答案。關於第二個問題,你確定你有'使用System'嗎? –

+0

現在沒有在構建錯誤,但是當我運行代碼時,它會中斷並導致出現錯誤消息,說@FilePath – AC3