关于DataSet 合并问题,搜了下,也没解决.下面是一个可以合并,而且可以update 的程序.
public DataSet CreateCmdsAndUpdate(DataSet myDataSet,string myConnection,string mySelectQuery,string myTableName)

{
OleDbConnection myConn = new OleDbConnection(oleDbConnection2.ConnectionString);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(); //没数据
myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(myDataAdapter);
myConn.Open();
DataSet custDS = new DataSet();
myDataAdapter.Fill(custDS,myTableName);

新增的代码,完成生成一个新的DataSet并和老的merge在一起#region 新增的代码,完成生成一个新的DataSet并和老的merge在一起
DataSet newData=new DataSet(); //新建一个DataSet // 有数据

//创建表
newData.Tables.Add(myTableName);

//拷贝表结构

foreach(DataColumn column in custDS.Tables[myTableName].Columns)
{
newData.Tables[myTableName].Columns.Add(new DataColumn(column.ColumnName.ToString(),column.DataType));
}
//设置Primary Key

newData.Tables[myTableName].Rows.Add(new object[4]
{0,1,System.DateTime.Now.ToLongTimeString(),11});
//newData.Tables[myTableName].PrimaryKey=new DataColumn[1]{newData.Tables[myTableName].Columns["LinkTokenID"]};

//插入新数据

custDS.Tables[myTableName].PrimaryKey=new DataColumn[1]
{custDS.Tables[myTableName].Columns["LinkTokenID"]};

//custDS.AcceptChanges();

custDS.Merge(newData); //合并两个DataSet
dataGrid2.SetDataBinding(custDS,myTableName);


#endregion
myDataAdapter.Update(custDS, myTableName);
myConn.Close();
return custDS;
}
上述newData 是在程序中创建的,并且填充的数据,一切正常.但是如果将该newData 的数据填充方法换成
OleDataAdapter 从数据库读数据填充,再merge ,则update 执行失败,不能达到预想的效果进行合并.
到底是什么原因呢,请各位高手指点.