************** 把Excel里的数据读出来存入dataset里********************
  string oledbconnstring = string.Empty;
            oledbconnstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpRuntime.AppDomainAppPath + "Excle/" + filename + ";Extended Properties=Excel 8.0;";
            System.Data.OleDb.OleDbConnection OdbConn = null;
            System.Data.OleDb.OleDbDataAdapter Odar = null;
            DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            OdbConn = new System.Data.OleDb.OleDbConnection(oledbconnstring);
            OdbConn.Open();
            dt = OdbConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);
            if (dt != null && dt.Rows.Count > 0)
            {
               for (int i = 0; i < dt.Rows.Count; i++) {                  string ExcelName = dt.Rows[i][2].ToString();
                  char reg =Convert.ToChar(ExcelName.Substring(5,1));//分离年度跟荣誉编码
                  string[]  Array= ExcelName.Split(reg);
                  string rynd = Array[0];
                  string rycode = Array[1];
                  string ExcelSql = "select * from[" + ExcelName+"]";
                  Odar = new System.Data.OleDb.OleDbDataAdapter(ExcelSql, OdbConn);
                  Odar.Fill(ds, "ExcelTabel");
                  if (ds.Tables["ExcelTabel"].Columns.Count != 7)
                  {
                      Response.Write("<Script>alert('对不起,Excle表的格式与数据库的格式不符')</script>");
                      Response.End();
                  }
                 
                }
*****************这里是我网上搜过来的把dataset数据集存入到oracle数据库里**********string OracleStr=ConfigurationManager.ConnectionStrings["oracleConn"].ConnectionString;
        OracleConnection Conn = new OracleConnection(OracleStr);
        OracleDataAdapter odar = new OracleDataAdapter("select * from qyxx_qyry",Conn);
        OracleCommandBuilder ocb = new OracleCommandBuilder(odar);
        DataSet dst = new DataSet();
        dst = ds;
        odar.Fill(dst, "qyxx_qyry");
        odar.Update(dst, "qyxx_qyry");
        ds.AcceptChanges();ds有数据了存不进去数据库里。已经测试2天了还是不行。请高手指点下。

解决方案 »

  1.   

    你只是查询出结果集,并没有任何改动,无法Update的,所以说存不进数据库是对的。像下面的可以跟新到数据库中public static void BuilderUpdate(string connStr)
    {
       string cmdStr = "SELECT EMPNO, EMPNAME, JOBDESCRIPTION FROM EMPINFO";   OracleDataAdapter adapter = new OracleDataAdapter(cmdStr, connStr);   OracleConnection connection = adapter.SelectCommand.Connection;   OracleCommandBuilder builder = new OracleCommandBuilder(adapter);   DataSet dataset = new DataSet();   adapter.Fill(dataset, "EMPINFO");   DataTable table = dataset.Tables["EMPINFO"];   DataRow row0 = table.Rows[0];   row0["JOBDESCRIPTION"] = "MANAGER";   adapter.Update(dataset, "EMPINFO");
    }
    针对你的这个情况,是从Excel生成ds,你可以遍历ds,然后逐行数据插入到数据库。