下面是代码(与服务器/密码等去掉)为什么此更新会锁定Oracle 10中的行?
public int SetUploadedInESIDatabase(string ID)
{
using (var oOracleConn = new OracleConnection())
{
oOracleConn.ConnectionString =
@"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<ip>)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<dbname>)));User Id=<user>;Password=<password>;";
var cmd =
new OracleCommand(
"UPDATE FOO_ACCESS SET PIMAGE ='-1' WHERE CODE= '" + ID + "'", oOracleConn);
oOracleConn.Open();
return cmd.ExecuteNonQuery();
}
}
这段代码的作用是它永远不会越过return语句。没有错误返回(甚至一夜之间)
我不是一个数据库专家,但我们硬压DBA说,连接被锁定(或行可能...)他杀死锁定连接,但仍然当我运行它锁定的代码。
我是否在要求Oracle更新行方面做错了(tm)?
我知道我应该使用参数化查询,但我遇到了问题,需要简单的东西! 如果我将命令复制出cmd。与调试器和运行它使用SQL Developer然后它的工作(虽然有时它也锁定了)
我可以从数据库中随意选择。
我不确定这是正常的事情还是与我们的环境有关,所以任何帮助都很乐意接受!
哇,真的是什么样的Oracle连接字符串看起来像在C#中?它实际上使Oracle的Java连接字符串看起来不错! – Powerlord 2010-07-06 15:14:22
@ R.Bemrose:如果您不使用Oracle TNSNAMES.ORA文件为服务器提供友好名称,那只是连接字符串的外观。否则,使用TNSNAMES看起来好多了:'Data Source = ServerName;用户ID =用户;密码= pw'。 – LBushkin 2010-07-06 15:18:54
@R。 Bemrose:Oracle支持不同的连接字符串格式http://www.connectionstrings.com/oracle#p12 – devio 2010-07-06 15:20:01