0

我正在Data Grid通过System.Data.DataTable. DataTableDB tablevia填充ODP

我有一个data navigator用于Data Grid更新、删除和插入行的方法。

我想用来DataTable提交Data Grid对数据库所做的所有更改。

我必须使用OracleDataAdapter,但我不知道如何实现这一点。

我应该使用什么样的 aCommandText来实现所有三个命令(update, delete, insert)?

下面的代码不起作用(可能是因为CommandText我插入的不合适)

public void ExecuteNonQuery(string commandText, OracleCommand oracleCommand, CommandType commandType, DataTable dataTable)
{
        oracleCommand.CommandText = commandText;
        oracleCommand.CommandType = commandType;

        try
        {
            oracleCommand.Connection = m_Connection;
            OracleDataAdapter oracleDataAdapter = new OracleDataAdapter(oracleCommand);
            oracleDataAdapter.Update(dataTable);
        }
        catch (Exception)
        {
            LoggerTrace.Instance.Write(TraceEventType.Error, LoggerTrace.LoggerTraceSource.DatabaseManagerError, "Query could not be executed!");
            throw;
        }
}
4

2 回答 2

0

OracleCommandBuilder在插入查询后生成适当的insert,update和查询。deleteselect

string selectCommand = "select * from Table";
oracleDataAdapter.SelectCommand = new OracleCommand(selectCommand, m_Connection);
OracleCommandBuilder cmdBuilder = new OracleCommandBuilder(oracleDataAdapter);
DataTable dataTable = new DataTable();
oracleDataAdapter.Fill(dataTable);

以这种方式构建命令后OracleCommandBuilder,您可以执行任何更新,DataTable如下所示:

oracleDataAdapter.Update(dataTable);

不允许使用序列、虚拟列等。

于 2013-05-31T06:37:40.733 回答
0

用于插入在数据表中创建一个新行并插入数据表中,用于更新更新值并最终保存数据集或数据表的更改

于 2013-05-27T09:08:37.160 回答