asp.net 把excel里面的数据导入数据库,导入失败,调试时,读取dataset是里面单元格有很多红点,怎么解决?谢谢

解决方案 »

  1.   

    代码应该没有问题,就是如果新建换一个excel,填写数据,就可以?
      

  2.   

    问题楼主已经找到了,应该是你的Excel表有问题
      

  3.   


    你导入时指定路径后可能是用open打开的Excel把Open改成新建!
      

  4.   

     string strCom = string.Format("SELECT * FROM [Sheet1$]");
                    ExcelConn.Open();
                    OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, ExcelConn);
    这个吗? ExcelConn.Open();
    该怎么改?谢谢
      

  5.   

    我把数据删了,只留了几条,就可以导成功!,调试时dataset里面还是有很多行,空数据,还有很多红点。
    是怎么回事?
      

  6.   

    贴一段代码给你看看,这是我一直用的方法,没发现问题 public DataSet ds(){
     string type2 = FileUpload1.FileName;
                var type3 = type2.Substring(type2.LastIndexOf('.'));            if(type3.Equals(".xls") || type3.Equals(".xlsx"))
                {
                    string newName = Server.MapPath("..//App_Data//Uploads//") + DateTime.Now.ToString("hhmmss") + ".xls";                FileUpload1.SaveAs(newName);
                    string connStr = string.Empty;                if (type3.Equals(".xlsx"))
                    {
                        connStr = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + newName +
                                  ";Extended Properties='Excel 12.0 Xml; HDR=YES; IMEX=1'";
                    }                else if (type3.Equals(".xls"))
                    {
                        connStr = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + newName +
                                  ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
                    }
                    OleDbConnection conn = new OleDbConnection(connStr);
                    if (conn.State.ToString() == "Closed")
                    {
                        conn.Open();
                    }
                    DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    var tableName = dt.Rows[0][2].ToString().Trim();
                    var str1 = string.Format("Select * from [{0}]", tableName);
                    OleDbDataAdapter oda = new OleDbDataAdapter(str1, conn);
                    DataSet ds = new DataSet();
                    oda.Fill(ds);
                    conn.Close();
                    File.Delete( newName );
    return ds;
    }