使用DataAdapter.Fill()调用INSERT / UPDATE / DELETE

时间:2013-08-27 06:38:36

标签: c# asp.net ado.net database-connection dataadapter

我有一个用asp.net和C#编写的应用程序。我正在使用具有连接模式的类来插入/更新和删除语句。我有正确的try,catch和Finally语句,它们打开和关闭OracleConnection。但有时候它只是在没有关闭连接的情况下刚刚离开并在DataBase中进行锁定,这反过来使网站停止。

现在我想将Queries更改为Disconnected模式,DataAdapter将管理连接问题。我需要使用参数执行自定义查询。

我编写了一个应用程序,我尝试使用DataAdapter对象FILL方法调用INSERT / UPDATE / DELETE语句。它的工作正常。(对于da.Update()方法,它需要一个行和行状态等,我认为这将是艰难的)

我想知道如果我使用这种方法会对数据库或应用程序的性能有任何问题吗?

int i = 0;
    using (OracleConnection con = new OracleConnection(WebConfigurationManager.ConnectionStrings["MYSTRING"].ConnectionString))
    {
        OracleCommand cmd = new OracleCommand("INSERT INTO MYTABLE(ID) VALUES(:ID)", con);           
        cmd.Parameters.AddWithValue(":ID", 123);

        using (OracleDataAdapter da = new OracleDataAdapter(cmd))            
        { 
            i = da.Fill(new DataSet());
        }
        cmd.Dispose();
    }
    return i;

上面的代码运行发送到DataAdapter的任何查询(插入,更新,删除)。我应该以任何其他方式做到这一点还是可以的?

1 个答案:

答案 0 :(得分:0)

我不知道OracleCommand对象,但是在SqlDataAdapter中你有Insert Command,DeleteCommand,UpdateCommand。 DataAdapterProperties或者您可以使用IdbDataAdapter接口IDbDataAdapter Interface

yourDataAdapter.InsertCommand = YourInsertCommandObject;//

更新

yourDataAdapter.UpdateCommand = YourUpdatcommand;