我使用下面的代码将SQL Server表复制到Access文件。当我选择本地SQL Server Express数据库(在本地快捷区域中使用SSMS创建数据库)时,我没有问题,但我对本地文件有问题。
//Using ACE.OLEDB :
OleDbConnection AccessConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+Setting.UniqeFolderPath+"\\"+Setting.UniqeId+".mdb");
AccessConn.Open();
//New table, using SELECT INTO
OleDbCommand AccessCommand = new OleDbCommand(
@"SELECT * INTO "+desName+" FROM ["+sourceName+ @"] IN ''
[ODBC;Driver={ODBC Driver 11 for SQL Server};Server="+@"(localdb)\MSSQLLocalDB;
Database='LocalDB';Trusted_Connection=yes];", AccessConn);
AccessCommand.ExecuteNonQuery();
AccessConn.Close();
更改数据库时出现问题:
//Error When change to file address or file
OleDbCommand AccessCommand = new OleDbCommand(
@"SELECT * INTO "+desName+" FROM ["+sourceName+ @"] IN '' [ODBC;Driver=
{ODBC Driver 11 for SQL Server};Server="+@"(localdb)\MSSQLLocalDB;
Database='3b26bee4-2cdb-4d39-8400-7abb3debe802';Trusted_Connection=yes];", AccessConn);
我将数据库更改为以下每个代码:
Database='3b26bee4-2cdb-4d39-8400-7abb3debe802'
Database='3b26bee4-2cdb-4d39-8400-7abb3debe802.mdf'
Database='c:\user\temp\uniqueFolder\3b26bee4-2cdb-4d39-8400-7abb3debe802.mdf'
Visual Studio显示此错误:
其他信息:ODBC - 连接到' {ODBC驱动程序11 for SQL Server}(localdb)\ MSSQLLocalDB'失败。
当我更改为使用SSMS创建的本地快速数据库时,将表复制到访问文件。
OleDbCommand AccessCommand = new OleDbCommand(
@"SELECT * INTO "+desName+" FROM ["+sourceName+ @"] IN '' [ODBC;Driver=
{ODBC Driver 11 for SQL Server};Server="+@"(localdb)\MSSQLLocalDB;
Database='LocalDB';Trusted_Connection=yes];", AccessConn);
问题:如何将数据从SQL Server本地文件复制到Access .mdb
flie?
注意:我使用SQL Server 2016 Express并使用(localdb)\MSSQLLocalDB
答案 0 :(得分:0)
将连接字符串放在一起的方式很奇怪,您在命令对象中包含了连接字符串,它将覆盖OleDbConnection中的属性。
" [ODBC;驱动程序= {ODBC驱动程序11用于 SQL Server }; 服务器 =" + @" localdb)\ MSSQLLocalDB;数据库='的LocalDB&#39 ;; Trusted_Connection = YES]"
从命令中删除连接字符串元素,并仅在OleDbConnection对象上指定连接字符串。
如果您需要有关连接字符串应该是什么样子的更多信息,请查看https://www.connectionstrings.com/。