2013-04-10 86 views
0

我正在開發工具,用於將文本文件中的數據插入到使用csharp和bcp實用程序的表中。BCP通過C夏普

我用下面的代碼,但它不工作。表或文本文件沒有問題。

 private void button1_Click(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection(@"Data Source=ABPROCKET\MSSQL2008R2;Initial Catalog=Northwind;Integrated Security=True"); 
     string sCommandText; 
     sCommandText = "exec xp_cmdShell 'bcp.exe' " + "PUBS.DBO.T1" + " IN " [email protected]"D:\Text.Txt" + "-T" +" -c"; 

     con.Open(); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = con; 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = sCommandText; 
     cmd.ExecuteNonQuery(); 
     MessageBox.Show("inserted"); 

    } 

我認爲問題是與bcp命令及其parameters.somebody請幫我解決這個問題。

+1

你所說的「問題」是什麼意思?你有錯誤嗎?意外的行爲? – 2013-04-10 20:02:58

+0

是的,我是geeting錯誤,它說 - SQL Exception unhandled「'PUBS'附近的語法不正確」。 – Arun 2013-04-10 20:05:22

+1

是否有你通過T-SQL調用它的原因,而不是直接調用bcp.exe? – 2013-04-10 20:11:52

回答

0

嘗試bcp.exe後移動你的單引號的語句結尾:

sCommandText = "exec xp_cmdShell 'bcp.exe " + "PUBS.DBO.T1" + " IN " [email protected]"D:\Text.Txt" + "-T" +" -c'"; 
+0

我認爲修復問題,但現在它引發新錯誤SQL Server阻止訪問組件'xp_cmdshell'的過程'sys.xp_cmdshell',因爲此組件已作爲此服務器的安全配置的一部分關閉。系統管理員可以使用sp_configure啓用「xp_cmdshell」。 – Arun 2013-04-10 20:21:43

+0

新消息是什麼? – 2013-04-10 20:23:47

+0

由我爲一些非sql程序員開發這個工具 – Arun 2013-04-10 20:28:50