相关疑难解决方法(0)

SqlBulkCopy无法访问表

在Excel表(以transferTable)看完后,我想将数据添加到使用SqlBulkCopy的新表(destinationTable会),但我得到的错误:

Cannot access destination table 'test'
Run Code Online (Sandbox Code Playgroud)

我尝试使用默认的表名并使用方括号,但这不起作用.

有什么建议?

private void writeToDBButton_Click(object sender, EventArgs e) {
    MakeTable();
    destinationTable.TableName = "test";
    testDBDataSet.Tables.Add("test");

    // Connects to the sql-server using Connection.cs
    SqlConnection connection = Connection.GetConnection();

    using (connection) {
        connection.Open();

        // Uses SqlBulkCopy to copy the data from our transferTable to the destinationTable
        using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)) {
            bulkCopy.DestinationTableName = destinationTable.TableName;

            try {
                // Write from the source to the destination.
                bulkCopy.WriteToServer(transferTable);
                this.dataGridView2.DataSource = destinationTable;
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }

            connection.Close(); …
Run Code Online (Sandbox Code Playgroud)

c# database sql-server sqlbulkcopy

15
推荐指数
3
解决办法
2万
查看次数

消息4834"您无权使用批量加载语句"

无论我尝试什么,我都会收到这个错误.

我有一个存储过程,执行为:

CREATE PROCEDURE usp_myproc
WITH EXECUTE AS 'myuser'
Run Code Online (Sandbox Code Playgroud)

在这个sp我有

EXEC('INSERT INTO ' + @tablename + '
            SELECT col1, col2, col3
            FROM OPENROWSET( 
              BULK '''+ @filepath +''',
              FORMATFILE='''+ @formatfile +''',
              FIRSTROW=2
            )as t'
          )
Run Code Online (Sandbox Code Playgroud)

myuser确实有bulkadmin角色,读/写,创建表,插入,选择,执行,修改权限.其中一些可能不需要,但这是我到目前为止所尝试的.我错过了什么?

谢谢.

sql sql-server-2008

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

database ×1

sql ×1

sql-server ×1

sql-server-2008 ×1

sqlbulkcopy ×1