如excel表格中有:UsrName,UsrPwd,Age这三个字段,我想把他存到SQL SERVER中的users表(包含上面的三字段)中,请问用代码的方式怎么实现啊?

解决方案 »

  1.   

    private DataSet ReadExcel(string strFileName)
    {
    string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source =" +strFileName + ";Extended Properties = Excel 8.0";
    OleDbConnection oleConnection = new OleDbConnection(strConnection);
    try
    {
    string strCommondText = " SELECT * FROM [Sheet1$] ";
    oleConnection.Open();
    DataSet dsRead = new DataSet();
    OleDbDataAdapter oleAdper = new OleDbDataAdapter(strCommondText,oleConnection);
    oleAdper.Fill(dsRead,"Pantent");
    return dsRead;
    }
    catch(System.Exception)
    {
    throw new ApplicationException("读取数据源文件时出错");
    }
    finally
    {
    oleConnection.Close();
    }
    }/*
         从DataSet 中再存入数据库中
    */
      

  2.   

    顶1楼的。
    但是如果记录条数很多时,使用DataReader从excel获取数据,再插入到SQL SERVER会不会更好一点呢?
      

  3.   

    和我原来写的方法基本上一样,但是会报这样的错误
    System.Exception: 方法ReadExcel发生错误 ---> System.Data.OleDb.OleDbException: 创建文件失败。
    是不是我的excel文件的问题啊?
      

  4.   

    string conExcel= "Provider=Microsoft.Jet.OLEDB.4.0; DataSource=E:\fagaiwei.xls;Extended Properties = Excel 8.0";public DataSet GetFromExcel()
    {
    OleDbConnection objCn=new OleDbConnection();
    OleDbDataAdapter objCmd;
    DataSet ds=new DataSet();
    string sqlExcel="select * from [Sheet1$]";
    try
    {
    objCn.ConnectionString=conExcel;
    objCn.Open();
    objCmd=new OleDbDataAdapter(sqlExcel,objCn);
    objCmd.Fill(ds,"temp");
    objCn.Close();
    }
    catch(Exception e)
    {
    throw(new Exception("方法GetFromExcel发生错误",e));
    }
    finally
    {
    if(objCn.State!=ConnectionState.Closed)
    {
    objCn.Close();
    }
    }
    return ds;
    }
      

  5.   

    好像有一点不同
    string conExcel= @"Provider=Microsoft.Jet.OLEDB.4.0; DataSource=E:\fagaiwei.xls;Extended Properties = Excel 8.0";
      

  6.   

    晕,是Data Source而不是DataSource,
    而且要注意你的(Exception e),这里“e”好容易疏忽,最好用别的名字。