none
c#如何实现本地access数据导入远程sql RRS feed

  • 问题

  • string str1 = "server=10.160.1.1;database=posdata;user=***;pwd=***;connect timeout=10;"; 

    string str3 =@ "Insert into BHDcomm(日期) select 日期 from OpenDataSource("'Microsoft.Jet.OLEDB.4.0','Data Source=D:\Tcomm1.mdb;User ID=admin;Password=;' ")...[BHD]";

                SqlConnection con1 = new SqlConnection(str1);
                SqlCommand cmd2 = new SqlCommand(str3, con1);
               
                try
                {
                    con1.Open();
                    MessageBox.Show(cmd2.ExecuteNonQuery().ToString());
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
                finally
                {
                    con1.Close();
                }           

    如上所示,这样的话,只能导入10.160.1.1服务器下D:\Tcomm1.mdb的文件,无法导入本地D:\Tcomm1.mdb的文件,我需要导入本地的,不知哪位高人能指点一下!



    • 已编辑 hzg69111 2011年11月14日 6:42
    2011年11月12日 3:52

答案

  • 上面的方法是利用了 SQL Server 的 OPENDATASOURCE 函数来打开一个 OLE 数据连接。所以在这里指定的参数当然是 SQL Server 服务器上的文件系统的路径了。

    要用远程的也可以,要写 UNC 路径,如 \\server\share\file.ext

    不过需要有几个条件。

    1、SQL Server 服务器能够连接到该 UNC 路径
    2、SQL Server 服务器有读取/写入权限

    针对于内网应用程序这个方法是可行的,不过如果程序发布到外部 Web 就没救了。

    请参考其他人的回复,先上载 ACCESS 文件到 SQL Server 服务器的文件系统或者数据库中,然后再打开。我个人推荐后者。因为这样不会暴露服务器的文件系统。


    Mark Zhou
    2011年11月14日 7:53

全部回复

  • 大家帮帮忙,纠结了好几天了!!!!

    2011年11月12日 5:07
  • 救命啊!!!!
    2011年11月12日 5:56
  • 我顶!!!!!!呃。。。。来个人帮我一下嘛!

    2011年11月14日 1:25
  • 你可以做一个WEB系统,先把ACCESS文件上传到SQLSERVER所在的服务器上,然后再把ACCESS中的数据通过程序导入到SQLSERVER数据库中
    http://blog.csdn.net/zx13525079024
    2011年11月14日 2:04
  • 谢谢您的建议,您说的这也是一个方法,但每天有几百个这样的文件,感觉效率和稳定性不太好。有没有更好一点的办法?

    2011年11月14日 3:09
  • 我还需要更好的方法,有劳大家帮帮忙!!

    2011年11月14日 6:09
  • 我觉得可以这么试试看: 在本地创建个winform或者其他程序,读取access文件的数据,然后通过 这个程序保存到远程数据库中。

     


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us
    2011年11月14日 7:29
    版主
  • 上面的方法是利用了 SQL Server 的 OPENDATASOURCE 函数来打开一个 OLE 数据连接。所以在这里指定的参数当然是 SQL Server 服务器上的文件系统的路径了。

    要用远程的也可以,要写 UNC 路径,如 \\server\share\file.ext

    不过需要有几个条件。

    1、SQL Server 服务器能够连接到该 UNC 路径
    2、SQL Server 服务器有读取/写入权限

    针对于内网应用程序这个方法是可行的,不过如果程序发布到外部 Web 就没救了。

    请参考其他人的回复,先上载 ACCESS 文件到 SQL Server 服务器的文件系统或者数据库中,然后再打开。我个人推荐后者。因为这样不会暴露服务器的文件系统。


    Mark Zhou
    2011年11月14日 7:53