Excel与SQL数据倒换的问题1、首先读取一个Excel中的数据,存入dataset,并已在datagridview中显示出来了。现在需要在点击一个btnInsert时将所有的数据插入到数据库中的某一张表中。因为考虑到每次读取的Excel数据不同,所以不能把列给写死了。不知道该怎么做了。2、在读取Excel时因为里面的表名各不相同,不知有没办法每次都动态的取到每个工作簿中的工作表名?我现在的方法是把每个工作表的名字都改成sheet1,这样太过于麻烦了。请各位高手踊跃赐教!

解决方案 »

  1.   

    2、
    string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source="
                        + _xlsPathName + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";                objConn = new OleDbConnection(strConn);
                    objConn.Open();
                    DataTable schemaTable = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    OleDbDataAdapter sqlada = new OleDbDataAdapter();
                    foreach (DataRow dr in schemaTable.Rows)
                    {
                        string strSql = "Select * From [" + dr[2].ToString().Trim() + "]";
                        OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
                        sqlada.SelectCommand = objCmd;
                        sqlada.Fill(ds, dr[2].ToString().Trim());
                    }
                    objConn.Close();GetOleDbSchemaTable取得所有sheet表
      

  2.   

    在读取EXCEL的过程中能不能加入判断语句得到列数呢
      

  3.   


    要得到列数是很容易的,DataSet或是DataGridView中都可以取得到问题是如何把DataSet的数据一次性全插入到数据库的表当中去
      

  4.   

    列数不同的话,表中对应的字段也不同。
    如果动态生成新表,每个EXCEL插一个表好办!
    如果都要插同一个表,不知道楼主想如何解决。
      

  5.   


    暂时不考虑每次插入同一个表吧,现在只想先解决如何把一个excel表导入到数据库中
      

  6.   

    http://www.cnblogs.com/hedonister/articles/121441.html
    http://dotnet.aspx.cc/ShowDetail.aspx?id=C673E2CD-3F1E-4919-8CE0-D69B894A0599
      

  7.   


    谢谢楼上的好心不过第一个是在SQL里导的,我需要的是在程序里动态的转换过来第二个则是读取的方法,关于读取1楼的兄弟已经给出了很好的代码了