OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("select empid,eduyear,fromdate,todate from EduScoreDiscount",con);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(adapter); //这一句放下来。
adapter.InsertCommand = custCB.GetInsertCommand();
DataSet dss = new DataSet();
con.Open();
adapter.Fill(dss);
dss.Merge(ds,true); //放到这一行的后面。
adapter.Update(dss);
con.Close();请确保数据库有主键。
兄弟你够粗心。^_^
adapter.SelectCommand = new OleDbCommand("select empid,eduyear,fromdate,todate from EduScoreDiscount",con);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(adapter); //这一句放下来。
adapter.InsertCommand = custCB.GetInsertCommand();
DataSet dss = new DataSet();
con.Open();
adapter.Fill(dss);
dss.Merge(ds,true); //放到这一行的后面。
adapter.Update(dss);
con.Close();请确保数据库有主键。
兄弟你够粗心。^_^
adapter.SelectCommand = new OleDbCommand("select id,name from table1",oleDbConnection1);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(adapter);
adapter.InsertCommand = custCB.GetInsertCommand();
DataSet dss = new DataSet();
oleDbConnection1.Open();
//这句是关键
adapter.TableMappings.Add("Table","table1");
//
adapter.Fill(dss,"Table1");
DataSet ds=new DataSet();
DataTable dt=new DataTable("Table1");
dt.Columns.Add("id",typeof(int));
dt.Columns.Add("name",typeof(string));
dt.Rows.Add(new object[]{1,"aaa"});
dt.Rows.Add(new object[]{2,"bbb"});
ds.Tables.Add(dt);
dss.Merge(ds,true);
adapter.Update(dss);
oleDbConnection1.Close();
2个DataSet结构不同吗??
先在数据库搞一张相同的表再填充,再合并,再更新。
数据库的表必须有主键。
如果进了的话,就是adapter这里的问题。
请参考我的第一个回答。
并且
adapter.SelectCommand = new OleDbCommand("select empid,eduyear,fromdate,todate from EduScoreDiscount",con);
改成
adapter.SelectCommand = new OleDbCommand("select * from EduScoreDiscount",con);
试一下。