Reputation: 21
i'm having a error message sent everytime i try to copy data from a data table to an sql database using Sqlbulkcopy. This is the code i'm using:
static void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvFileData)
{
using (SqlConnection dbConnection = new SqlConnection(@"Data Source=DESKTOP-LNCGI78\SQLEXPRESS;Initial Catalog=Testdatabase;Integrated Security=SSPI;"))
{
dbConnection.Open();
using (SqlBulkCopy s = new SqlBulkCopy(dbConnection))
{
s.DestinationTableName = "dbo.Table";
foreach (var column in csvFileData.Columns)
s.ColumnMappings.Add(column.ToString(), column.ToString());
s.WriteToServer(csvFileData);
}
}
}
This is the error :System.InvalidOperationException: 'Cannot access destination table. i checked permissions to write in the table, all seems fine and i tried to insert some rows in it with success. I don't know what i'm missing or what i did wrong.
Upvotes: 1
Views: 362
Reputation: 32
I had a similiar problem what I did is just s.DestinationTableName="[TableName]"
.
So no dbo.[TableName] just [TableName]
Upvotes: 0
Reputation: 1169
The word Table is a reserved word in SQL Server and as such you need to add brackets:
s.DestinationTableName = "dbo.[Table]";
Upvotes: 1