C# BCP至C夏普

C# BCP至C夏普,c#,sql-server-2008-r2,C#,Sql Server 2008 R2,我正在开发一个工具,用于使用csharp和bcp实用程序将数据从文本文件插入到表中 我使用了以下代码,但它不起作用。表或文本文件没有问题 private void button1_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(@"Data Source=ABPROCKET\MSSQL2008R2;Initial Catalog=Northwind;Integra

我正在开发一个工具,用于使用csharp和bcp实用程序将数据从文本文件插入到表中

我使用了以下代码,但它不起作用。表或文本文件没有问题

     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 " +@"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命令及其参数上。请有人帮我解决这个问题。

尝试将您的单引号移动到
bcp.exe
之后的语句末尾:

sCommandText = "exec xp_cmdShell 'bcp.exe " + "PUBS.DBO.T1" + " IN " +@"D:\Text.Txt" + "-T" +" -c'";

你说的“问题”是什么意思?你有错误吗?意外行为?是的,我发现了一些错误,上面写着-SQL异常未处理“PUBS附近的语法不正确”。是否有原因让您通过T-SQL调用它,而不是直接调用bcp.exe?我认为这可以解决问题,但现在它抛出了一个新错误SQL Server阻止了对组件“xp\u cmdshell”的过程“sys.xp\u cmdshell”的访问,因为此组件作为此服务器的安全配置的一部分被关闭。系统管理员可以通过使用sp_configure来启用“xp_cmdshell”的使用。在我为一些非sql程序开发此工具之前,我认为错误消息是不言自明的。我不是dba,所以除了搜索google或bing以获取说明外,我没法再进一步了。好的,谢谢,我想问的另一个问题是-这段代码可以与vs express edition一起使用吗?现在我正在使用vs 2010 professional,我听说express edition不支持远程数据访问。对不起,我不知道这个问题的答案。