在线急等,c#怎么用操作数据库的模式来操作excel, 求大神指点

在线急等,c#如何用操作数据库的模式来操作excel, 求大神指点~
本帖最后由 xiaoao314224236 于 2013-12-27 09:56:41 编辑
  string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";
            //Sql语句 

            string strExcel = "select * from   [sheet1$]";
            //定义存放的数据表 
            DataSet ds = new DataSet();
            //连接数据源 
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            //适配到数据源 
            OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
            adapter.Fill(ds, strSheetName);
           
           // ds.Tables[strSheetName];
            DataTable KK = ds.Tables[strSheetName];

          

            string ss = "";

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                for (int j = 0; j < ds.Tables[0].Columns.Count;j++ )
                {
                    ss += ds.Tables[0].Rows[i][j].ToString() + " ";
                }
            }
            ds.Tables[0].Rows[0][0] = 100;
          //  da.Update(ds, Table_name);
           [color=#FF6600] adapter.Update(ds, strSheetName);
   更新其值的时候会报错(当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand)
           conn.Close();
           return ds.Tables[strSheetName];
网上有的说是因为主键原因,但是EXCEL 没有主键,据我所知的确可以用这种方式去做的,求大神指点

------解决方案--------------------
這個是操作數據集的問題,從數據庫里读出的数据都是 有列名的,你从Excel 读出 的数据 也有列名  不过都是默认的 column1  column2 之类的,你需要建一个datatable 建列  建主键(datatable 有主键属性的)
然后把datatable 放到 dataset里  在更新
------解决方案--------------------
你的adapter的updatecommand 对象没有赋值。
还有,excel自己修改的功能已经很强大了。为什么要用ado.net呢