请教高手:关于ASP.NET环境下将DBF、DB文件导入异地SQL中的问题

ncjmc 2008-06-11 09:18:05
环境:ASP.NET 2.0,MS SQL 2000。WEB服务器和SQL服务器分别在两台服务器上。

操作:SQL与Access、Excel、Dbase、Paradox的异地导入和导出

问题:用下列语句将WEB服务器上的D:\WEB\中的Access、Excel、Dbase、Paradox数据文件导入到SQL服务器上的XXXX数据库的TEST表中。当OleDb连接源文件是Excel或Access文件时,语句操作成功,但若为DBF或DB文件时,出现SQL语句的INTO错误的提示。

// DBF文件连接串
string ConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\WEB\\;Extended Properties=dBASE IV;Persist Security Info=False;";
// Excel连接串
//string ConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\WEB\\TEST.xls;Extended Properties=Excel 8.0;";
OleDbConnection objConn = null;
OleDbCommand objCmd = null;
try
{
objConn = new OleDbConnection(ConnString);
objCmd = new OleDbCommand(null, objConn);
objCmd.CommandText = "INSERT INTO [ODBC;Data Source=192.168.1.2;Initial Catalog=XXXX;User ID=sa;Password=XXXXXXX;].[TEST] (姓名,性别) SELECT 姓名,性别 FROM [A2008]",
objConn.Open();
objCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Response.Write("错误:" + ex.Message);
}
finally
{
objConn.Close();
objCmd.Dispose();
objConn.Dispose();
}

另外,SQL导出语句,DBF、DB文件必须用
SELECT 姓名,性别 INTO [A2008] FROM [TEST] IN [ODBC][ODBC;Data Source=192.168.1.2;Initial Catalog=XXXX;User ID=sa;Password=XXXXXXX;]
不能用
SELECT 姓名,性别 INTO [A2008] FROM [ODBC;Data Source=192.168.1.2;Initial Catalog=XXXX;User ID=sa;Password=XXXXXXX;].[TEST]
Access、Excel两者都可以。

此问题困扰很久,期待哪位高手解决。
...全文
123 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ncjmc 2008-06-12
谢谢,我也用过IN语句,不过语法错了,把[ODBC]写在后面了。问题应该解决了吧。
另外,还想问个相同情况下的UPDATE语句该怎么写?如果不行的话,我可以另开贴。


回复
ncjmc 2008-06-11
谢谢cpp2017

1.insert into test select 字段 from opendatasource("...")
这种方法用在WEB和SQL都在同一服务器上确实没问题,开发环境下已实现了

2.采用dbf数据表读入再导入的话,这是不得已的办法了,因为这个dbf文件有1万多条记录,这样做的话效率不高,所以一直没采用

所以我还是想探讨一下仅用一行sql语句来实现的办法
回复
cpp2017 2008-06-11
因为没有dbf,以下仅作参考:
1.可尝试在sql server中执行sql导入,用insert into test select 字段 from opendatasource("...")这种方式

2.实在不行,可先将dbf的数据读到datatable中再导入到sql server
回复
cpp2017 2008-06-11
objCmd.CommandText = "INSERT INTO [Test](姓名,性别) IN [ODBC] [ODBC;Data Source=.;Initial Catalog=test;User ID=sa;Password=sa] SELECT 姓名,性别FROM [A2008] ";
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2008-06-11 09:18
社区公告
暂无公告