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;
}
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;
}
...全文
相关推荐
DataAdapter
DataAdapter对象的常用属性 DataAdapter对象的常用方法
DataAdapter使用总结
对于刚刚学习ADO.NET数据访问技术的来说,DataAdapter也许往往会令他们感到迷惑,特别是习惯于利用托拽DataAdapter控件进行开发的朋友,通过这一ADO.NET数据访问控件,我们甚至不用书写一行代码,就能完成各种需要的数据访问和操作,然而在享受快捷便利的同时,心中却总挂着一丝意犹未尽的感觉。
dataadapter
dataadapter的一个运用代码,为那些出血.net 数据库编程的提供
DataAdapter执行批量更新的实例代码
介绍了DataAdapter执行批量更新的实例代码,有需要的朋友可以参考一下,希望对你有所帮助
DataAdapter是如何更新数据库数据的
DataAdapter对象不仅只是捕获数据的功能,事实上它还可以帮助你将更新后的DataSet以批次的方式再写回后台数据库,而且还相当简单,只要调入Update方法,并传入准备更新的DataSet及DataTable即可。


