C#将数据从本地SQL Server文件复制到Access .mdb

时间:2017-08-23 05:38:18

标签: c# sql-server sql-server-express

我使用下面的代码将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

连接到数据库

1 个答案:

答案 0 :(得分:0)

将连接字符串放在一起的方式很奇怪,您在命令对象中包含了连接字符串,它将覆盖OleDbConnection中的属性。

" [ODBC;驱动程序= {ODBC驱动程序11用于 SQL Server }; 服务器 =" + @" localdb)\ MSSQLLocalDB;数据库='的LocalDB&#39 ;; Trusted_Connection = YES]"

从命令中删除连接字符串元素,并仅在OleDbConnection对象上指定连接字符串。

如果您需要有关连接字符串应该是什么样子的更多信息,请查看https://www.connectionstrings.com/