首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2013-09-08 
求教,.DBF文件导入到SqlServer2005的问题新人,由于学校给的学生数据格式是.DBF格式的,现在新开发了一套系

求教,.DBF文件导入到SqlServer2005的问题
新人,由于学校给的学生数据格式是.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();是什么东西,该怎么用,哪位大大可以解释一下,或者给我一段可用的代码,谢谢了! sqlserver 数据库


[解决办法]
在sql server2005里面这样查询,你看能够查询出来吗?

select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/',
'select * from [aa.DBF]')

热点排行