从MDB文件插入SQL

问题描述 投票:0回答:1
string sqlConnectionString = String.Format(@"Data Source={0};Initial Catalog={1};Integrated Security=True;MultipleActiveResultSets=True", server, database);
string mdbConnectionString = String.Format(@"Provider=Microsoft.JET.OLEDB.4.0;data source={0};", @"C:\test\test.mdb");

using (var mdbConnection = new OleDbConnection(mdbConnectionString))
using (var sqlConnection = new SqlConnection(sqlConnectionString))
{
    mdbConnection.Open();
    sqlConnection.Open();

    // Empty table
    var sqlQuery = String.Format("DELETE FROM Languages");
    var sqlCommand = new SqlCommand(sqlQuery, sqlConnection);
    sqlCommand.ExecuteNonQuery();

    // Fill table with new information
    sqlQuery = String.Format("INSERT INTO Languages (ID, lang) " +
                             "SELECT ID, lang " +
                             "FROM OPENROWSET('" + mdbConnection.Provider + "', '" + mdbConnection.DataSource + "'; 'admin'; '', Languages)");
     sqlCommand = new SqlCommand(sqlQuery, sqlConnection);
     sqlCommand.ExecuteNonQuery();
}

第二个sqlCommand在调用ExecuteNonQuery时引发此错误:

System.Data.SqlClient.SqlException:'无法为链接服务器'(null)'创建OLE DB提供程序'Microsoft.JET.OLEDB.4.0'的实例。.''

我想念什么?

c# sql sql-server ms-access oledb
1个回答
0
投票

您需要在显示的现有代码之前添加代码,才能设置sql服务器的服务器和数据库名称。请检查您是否拥有它-服务器名称和数据库名称正确。服务器名称通常可以是文本或IP地址(但在字符串两边加上引号,例如:“ 10.1.99.21”

Dim server as String
Dim database as String
server = "mySqlServerName"
database = "myDatabaseName"
© www.soinside.com 2019 - 2024. All rights reserved.