【发布时间】:2014-05-15 20:00:34
【问题描述】:
我正在尝试使用带有 CLR 4.5 的 ASP C# 中的 Oracle 连接运行非查询。这是我的代码:
string connectionString = ConfigurationManager.ConnectionStrings["OracleConnectionString1"].ConnectionString;
OracleConnection conn = new OracleConnection(connectionString);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "update SALES_ADVENTUREWORKS2012.SALESORDERDETAIL set UNITPRICEDISCOUNT=0 where ROWGUID='4A399178-C0A0-447E-9973-6AB903B4AECD'";
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = QUERY_TIMEOUT;
int row_affected = cmd.ExecuteNonQuery();
HttpContext.Current.Response.Write("Rows affected:" + row_affected + "<br/>");
conn.Close();
当我在 oracle 开发工具中运行查询时,它工作正常。 当我使用上面的 asp 代码时,它会在执行查询时冻结。即使我使用了 5 秒超时,它也会永远冻结。 我尝试过使用托管和非托管的 oracle 库;两者的行为相同。 请注意,使用填充或标量查询工作得很好,所以我的连接字符串没有任何问题。此外,oracle 开发可以执行此更新查询的事实证明这不是权限问题。
有什么想法吗?
【问题讨论】:
标签: asp.net oracle executenonquery