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.
-
4Possible duplicate of SqlBulkCopy cannot access tablemjwills– mjwills2018年10月26日 09:51:39 +00:00Commented Oct 26, 2018 at 9:51
2 Answers 2
The word Table is a reserved word in SQL Server and as such you need to add brackets:
s.DestinationTableName = "dbo.[Table]";
Comments
I had a similiar problem what I did is just s.DestinationTableName="[TableName]".
So no dbo.[TableName] just [TableName]