求教,.DBF文件导入到SqlServer2005的问题

MichaelMeng93 2013-09-06 11:48:00
新人,由于学校给的学生数据格式是.DBF格式的,现在新开发了一套系统,数据库用的是Sqlserver2005,但是对于学生数据的维护还是.DBF格式的,现在遇到的就是.DBF格式的文件怎么插入到Sqlserver2005数据库里,表的格式如下:
Xh nvachar(50) 备注:学号
Xm nvachar(50) 备注:姓名
Bh nvachar(50) 备注:院系
新建的表和给的数据格式完全一致,本人参考了网上的一个例子,但是有些东西看不太懂,源代码如下:

protected void Button1_Click(object sender, EventArgs e)
{
SXHD_DAL.DatabaseOper Dc = new DatabaseOper();
System.Data.Odbc.OdbcConnection conn_dbf = new System.Data.Odbc.OdbcConnection();

if (FileUpload1.PostedFile.ContentLength == 0)
{
Response.Write("<mce:script language=javascript><!--
alert('请选择需要导入的数据源!')
// --></mce:script>");
}
else
{
string fileName = FileUpload1.PostedFile.FileName.ToString();//获取dbf文件(包含路径)
//链接dbf数据库字符串
string connStr = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" + fileName + ";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO";
conn_dbf.ConnectionString = connStr;
conn_dbf.Open(); //打开链接

string sql = "select * from " + fileName;
OdbcDataAdapter da = new OdbcDataAdapter(sql, conn_dbf);
DataTable dt = new DataTable();
da.Fill(dt);
DataSet ds = new DataSet();
ds.Tables.Add(dt);

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string str_inst = "insert into Student(YXMC,YXDM,KSH,XH,ZCDM,XM,XB,ZY,ZZMM,PYFS,SYSZD,RXNY,BYNY,XZ,XL) values('" + ds.Tables[0].Rows[i]["YXMC"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["YXDM"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["KSH"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["XH"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["ZCDM"].ToString().Trim() + "',";
str_inst += "'" + ds.Tables[0].Rows[i]["XM"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["XB"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["ZY"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["ZZMM"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["PYFS"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["SYSZD"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["RXNY"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["BYNY"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["XZ"].ToString().Trim() + "','" + ds.Tables[0].Rows[i]["XL"].ToString().Trim() + "')";
Dc.addData(str_inst);

}
Response.Write("<mce:script language=javascript><!--
alert('成功导入 " + ds.Tables[0].Rows.Count.ToString()+ " 条毕业生数据!')
// --></mce:script>");
conn_dbf.Close(); //关闭链接
Response.Redirect("student.aspx");


}
}

不懂他的 SXHD_DAL.DatabaseOper Dc = new DatabaseOper();是什么东西,该怎么用,哪位大大可以解释一下,或者给我一段可用的代码,谢谢了!
...全文
139 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MichaelMeng93 2013-09-06
  • 打赏
  • 举报
回复
来位大神啊,求教~~
MichaelMeng93 2013-09-06
  • 打赏
  • 举报
回复
引用 3 楼 hdhai9451 的回复:
在sql server2005里面这样查询,你看能够查询出来吗? select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/', 'select * from [aa.DBF]')
我忘了改路径了,现在已经可以查出来了,但是如果我用一个FileUpdaLoad控件该怎么读取文件?
MichaelMeng93 2013-09-06
  • 打赏
  • 举报
回复
引用 3 楼 hdhai9451 的回复:
在sql server2005里面这样查询,你看能够查询出来吗? select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/', 'select * from [aa.DBF]')
启用服务之后显示: 链接服务器"(null)"的 OLE DB 访问接口 "MSDASQL" 返回了消息 "[Microsoft][ODBC Visual FoxPro Driver]File 'zongk.dbf' does not exist."。 消息 7350,级别 16,状态 2,第 1 行 无法从链接服务器 "(null)" 的 OLE DB 访问接口"MSDASQL"获取列信息。
MichaelMeng93 2013-09-06
  • 打赏
  • 举报
回复
引用 3 楼 hdhai9451 的回复:
在sql server2005里面这样查询,你看能够查询出来吗? select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/', 'select * from [aa.DBF]')
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
Andy__Huang 2013-09-06
  • 打赏
  • 举报
回复
只要你能够查询出来,导入什么表都是小问题了
Andy__Huang 2013-09-06
  • 打赏
  • 举报
回复
在sql server2005里面这样查询,你看能够查询出来吗? select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/', 'select * from [aa.DBF]')
MichaelMeng93 2013-09-06
  • 打赏
  • 举报
回复
真的没人吗?呜呜呜

62,041

社区成员

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

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

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

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