【发布时间】:2012-10-25 15:13:29
【问题描述】:
我处理 oracle 和 .net 已经有一段时间了,它们似乎并不是完美的搭配。这是一件奇怪的事情,我没有找到任何原因或如何解决它。
我做了简单的插入、更新和删除,但它们不起作用。它失败了
cmd.ExecuteNonQuery();
这是一段代码:
sqlCommand = string.Format(@" INSERT INTO TABLE_1
(ID, NAME, DESCRIPTION)
VALUES ((SELECT MAX(ID)+1 FROM TABLE_1),'{0}','{1}')", name, description);
using (OracleConnection conn = new OracleConnection(connectionString))
{
OracleCommand cmd = new OracleCommand(sqlCommand, conn);
cmd.CommandType = commandType;
try
{
conn.Open();
result = cmd.ExecuteNonQuery();
}
catch (Exception ex) { throw;}
finally
{
conn.Close();
}
一个简单的插入,对吧?!当我调试时,我得到了 cmd.Text 值(那将是 sqlCommand),并且我确实在 oracle db 中执行它,它运行得很好。当我在.Net中执行它时,它放弃了。
这是已知情况吗?有什么解决办法,有什么解释吗?
提前谢谢
【问题讨论】:
-
当你说“放弃”时,你是什么意思?你得到一个例外,还是它只是挂起。如果是例外,请发布完整的详细信息。此外,如果您发布更多代码可能会有所帮助。尝试在创建 SqlCommand 对象和执行它的位置发布完整的例程。
-
不,它只是一直执行很长一段时间,或者看起来是这样。
-
我看不出代码有任何明显错误(除了 SQL 注入风险,以及您不必要地捕获和抛出异常)。您是否仔细检查过您的连接字符串是否正确?
-
是的,没关系,那段代码工作正常,连接正常。我可以检索数据,但没有别的。连接打开,它挂在 cmd.ExecuteNonQuery()
-
这不是权限问题,我的意思是我确实有权在 db 中读取和写入数据