我知道我是如何做到這一點的,我之前已經做到了,但是下面的代碼在下面的更新語句中掛起了(不拋出異常),我沒有看到它的原因。任何人都能看到爲什麼如何執行更新查詢?
我不認爲很重要,但id
是Person
和belongs
的主鍵是外鍵。
在任何sugest concurrence問題之前,我是唯一在桌子上工作的人。 命令的創建是這樣:
public static String upDatePersonBelonging(Int32 personId,Int32 groupId)
{
String error;
if ((error = openConnection()) != "")
return error;
OracleCommand command =
new OracleCommand("UPDATE person SET belongs = :belongs where id = :id ",
connection);
addParameter(command, "belongs", OracleDbType.Int32, groupId);
addParameter(command, "id", OracleDbType.Int32, personId);
return runCommand(command);
}
的執行是這樣:
private static String runCommand(OracleCommand command)
{
String error = "";
try
{
command.ExecuteNonQuery(); // here it hangs
}
catch (Exception e)
{
error = e.Message;
}
finally
{
connection.Close();
}
return error;
}
開口函數如下:
private static String openConnection()
{
try
{
// create an open the connection
connection = new OracleConnection(_connStr);
// open the connection
connection.Open();
}
catch(Exception e)
{
return e.Message;
}
return "";
}
附加參數代碼:
private static void addParameter(OracleCommand command, String name, OracleDbType type, Object value)
{
command.Parameters.Add(name, type);
command.Parameters[command.Parameters.Count-1] = new OracleParameter(name, value);
}
可以更新用sqlplus表(登錄爲同一用戶在連接字符串中)? – paul 2013-04-11 11:28:48
你調試了你的代碼嗎? – 2013-04-11 11:32:06
是的,我可以在SQLDevloper和SQL plus中更新de table。是的,我調試它並掛在那裏,不再顯示,就像在一個infinit循環中一樣。 – 2013-04-11 11:37:51