我想在CLR 4.5中使用ASP C#中的Oracle連接運行非查詢。這裏是我的代碼:oracle ExecuteNonQuery在ASP.Net上凍結
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開發人員可以執行此更新查詢的事實證明,這不是權限問題。
任何想法?
你說得對。 Oracle開發工具保持連接打開並且超時不起作用導致此問題。謝謝 – max
我在SQLDeveloper中有無交易的交易 - 委託他們爲我工作。謝謝你的提示。 – ben