DataAdapter的Update问题(解决新开贴给分)
我给OracleDataAdapter指定了SelectCommand,InsertCommand,UpdateCommand和DeleteCommand,当调用Update(someDataTable)的时候,DeleteCommand根本就没有执行,而InsertCommand和UpdateCommand都是正确的,为什么?代码如下:
private OracleDataAdapter CreateOralceDataAdapter()
{
OracleDataAdapter da = new System.Data.OracleClient.OracleDataAdapter();
OracleParameter TempParemeter= new OracleParameter();
// string SelectSql = "SELECT equipcode as 设备编号,equipname as 设备名称,neobjkey as 厂家设备编号 ,nename as 厂家设备名称 FROM dt_equipnemap";
string SelectSql = "SELECT equipcode,equipname ,neobjkey ,nename FROM dt_equipnemap";
OracleCommand SelectCMD= new OracleCommand(SelectSql,this._Ora.Connnection);
da.SelectCommand = SelectCMD;
string InsertSql = "INSERT INTO dt_equipnemap (equipcode,equipname,neobjkey,nename) VALUES (:equipcode,:equipname,:neobjkey,:nename)";
OracleCommand InsertCMD = new OracleCommand(InsertSql,this._Ora.Connnection);
InsertCMD.Parameters.Add("equipcode",OracleType.VarChar,20,"equipcode");
InsertCMD.Parameters.Add("equipname",OracleType.VarChar,40,"equipname");
InsertCMD.Parameters.Add("neobjkey",OracleType.VarChar,150,"neobjkey");
InsertCMD.Parameters.Add("nename",OracleType.VarChar,150,"nename");
da.InsertCommand = InsertCMD;
string UpdateSql = "UPDATE dt_equipnemap SET equipcode = :equipcode,equipname=:equipname,neobjkey=:neobjkey,nename=:nename " +
" WHERE equipcode = :oldequipcode AND neobjkey = :oldneobjkey";
OracleCommand UpdateCMD = new OracleCommand(UpdateSql,this._Ora.Connnection);
UpdateCMD.Parameters.Add("equipcode",OracleType.VarChar,20,"equipcode");
UpdateCMD.Parameters.Add("equipname",OracleType.VarChar,40,"equipname");
UpdateCMD.Parameters.Add("neobjkey",OracleType.VarChar,150,"neobjkey");
UpdateCMD.Parameters.Add("nename",OracleType.VarChar,150,"nename");
// UpdateCMD.Parameters.Add("oldequipcode",OracleType.VarChar,20,"equipcode");
// UpdateCMD.Parameters.Add("oldneobjkey",OracleType.VarChar,150,"neobjkey");
TempParemeter = UpdateCMD.Parameters.Add("oldequipcode",OracleType.VarChar,20,"equipcode");
TempParemeter.SourceVersion = DataRowVersion.Original;
TempParemeter = UpdateCMD.Parameters.Add("oldneobjkey",OracleType.VarChar,150,"neobjkey");
TempParemeter.SourceVersion = DataRowVersion.Original;
da.UpdateCommand = UpdateCMD;
string DeleteSql = "DELETE FROM dt_equipnemap WHERE equipcode=:equipcode AND neobjkey=:neobjkey AND equipname=:equipname AND nename=:nename";
OracleCommand DeleteCMD = new OracleCommand(DeleteSql,this._Ora.Connnection);
TempParemeter = DeleteCMD.Parameters.Add("equipcode",OracleType.VarChar,20,"equipcode");
TempParemeter.SourceVersion = DataRowVersion.Original;
TempParemeter = DeleteCMD.Parameters.Add("equipname",OracleType.VarChar,40,"equipname");
TempParemeter.SourceVersion = DataRowVersion.Original;
TempParemeter = DeleteCMD.Parameters.Add("neobjkey",OracleType.VarChar,150,"neobjkey");
TempParemeter.SourceVersion = DataRowVersion.Original;
TempParemeter = DeleteCMD.Parameters.Add("nename",OracleType.VarChar,150,"nename");
TempParemeter.SourceVersion = DataRowVersion.Original;
da.DeleteCommand = DeleteCMD;
return da;
}