开始想直接在sql server 2008用存储过程写。用到了OpenRowSet、opendatasource两个函数,然而启用Ad Hoc DistributedQueries的方法后还是一直报错,查了资料可能是因为使用的是64位系统,最终也没改好,以后再来研究,可以参考http://www.cnblogs.com/OpenCoder/archive/2010/03/18/1689321.html
由于时间紧迫,就换了个方法在vs2014上用c#做:
A 打开Access数据库
private bool OpenDbAccess()
{
try
{
//捕获数据库打开异常
OleDbConnection _oleDbConn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=C:\Data.mdb");
_oleDbConn.Open();
return true;
}
catch (Exception)
{
return false;
}
}
B 打开sql server数据库
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "server=服务器地址;uid=sa;pwd=xxx;database=数据库名";
conn.Open();
C 用SQL语句查询Access表内容
OleDbDataAdapter _oleDbAda = new OleDbDataAdapter(SQL语句, Access表连接);
if (!string.IsNullOrEmpty(SQL语句) && !string.IsNullOrEmpty(Access表名))//要求表和sql语句不为空
{
var dt = new DataSet();//声明结果集对象
_oleDbAda.Fill(dt, tableName);
if (dt != null)
{