积极答复者
c#如何实现本地access数据导入远程sql

问题
-
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
答案
-
上面的方法是利用了 SQL Server 的 OPENDATASOURCE 函数来打开一个 OLE 数据连接。所以在这里指定的参数当然是 SQL Server 服务器上的文件系统的路径了。
要用远程的也可以,要写 UNC 路径,如 \\server\share\file.ext。
不过需要有几个条件。
1、SQL Server 服务器能够连接到该 UNC 路径
2、SQL Server 服务器有读取/写入权限针对于内网应用程序这个方法是可行的,不过如果程序发布到外部 Web 就没救了。
请参考其他人的回复,先上载 ACCESS 文件到 SQL Server 服务器的文件系统或者数据库中,然后再打开。我个人推荐后者。因为这样不会暴露服务器的文件系统。
Mark Zhou- 已标记为答案 Lie YouModerator 2011年11月17日 2:58
全部回复
-
我觉得可以这么试试看: 在本地创建个winform或者其他程序,读取access文件的数据,然后通过 这个程序保存到远程数据库中。
Best Regards,
Rocky Yue[MSFT]
MSDN Community Support | Feedback to us
-
上面的方法是利用了 SQL Server 的 OPENDATASOURCE 函数来打开一个 OLE 数据连接。所以在这里指定的参数当然是 SQL Server 服务器上的文件系统的路径了。
要用远程的也可以,要写 UNC 路径,如 \\server\share\file.ext。
不过需要有几个条件。
1、SQL Server 服务器能够连接到该 UNC 路径
2、SQL Server 服务器有读取/写入权限针对于内网应用程序这个方法是可行的,不过如果程序发布到外部 Web 就没救了。
请参考其他人的回复,先上载 ACCESS 文件到 SQL Server 服务器的文件系统或者数据库中,然后再打开。我个人推荐后者。因为这样不会暴露服务器的文件系统。
Mark Zhou- 已标记为答案 Lie YouModerator 2011年11月17日 2:58