请教高手:关于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两者都可以。

此问题困扰很久,期待哪位高手解决。
...全文
182 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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] ";

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧