public
static
bool
SaveDB(DataTable DT,
string
SqlText)
{ try { OracleConnection conn = new OracleConnection(OracleHelper.connectionString); OracleDataAdapter oda = new OracleDataAdapter(SqlText, conn); OracleCommandBuilder ocb = new OracleCommandBuilder(oda); oda.InsertCommand = ocb.GetInsertCommand(); oda.DeleteCommand = ocb.GetDeleteCommand(); oda.UpdateCommand = ocb.GetUpdateCommand(); oda.Update(DT); return true; } catch (OracleException exx) { MessageBox.Show("数据库操作失败!" + exx.Message); return false; } }
什么时候该用commandbuilder
1 commandbuilder只适合single table,不适合用在复杂的关系上
2 每次build的时候,它都会连接到数据库,取得相关信息,才能得到 update,delete,insert命令,对性能会有影响
3 如果是固定的表、固定的操作可以直接写dataadapter的update,insert,delete命令。因为表的字段可能很多,工作量大(as mentioned before),VS.NET提供了visual的方法编辑dataadapter,当你把dataadapter控件拖到design上的时候,就会出 现设置的向导,减少工作量
commandbuilder适合动态的操作,性能会损失
转载于:https://www.cnblogs.com/zhahost/archive/2008/06/02/1212396.html
相关资源:用CommandBuilder更新数据库