1

我有一个用 asp.net 和 C# 编写的应用程序。我正在使用具有连接模式的类来插入/更新和删除语句。我有适当的 try、catch 和 finally 语句来打开和关闭 OracleConnection。但有时它只是在没有关闭连接的情况下退出并在数据库中锁定,这反过来又使网站停止。

现在我想将查询更改为断开连接模式,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 的任何查询(插入、更新、删除)。我应该以任何其他方式这样做还是可以?

4

1 回答 1

0

我不了解 OracleCommand 对象,但在 SqlDataAdapter 中有 Insert Command、DeleteCommand、UpdateCommand。DataAdapterProperties或者你可以使用 IdbDataAdapter 接口IDbDataAdapter 接口

yourDataAdapter.InsertCommand = YourInsertCommandObject;//

更新

yourDataAdapter.UpdateCommand = YourUpdatcommand;
于 2013-08-27T07:01:08.083 回答