我是與Oracle在.NET上合作的新手。我過去曾經使用過SQL,並沒有遇到過這個問題。 我有我與此連接字符串連接Oracle服務器:Oracle命令不返回想要的結果
<add key="Test" value="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xxx))); User Id=xxxxxxx;Password=xxxxxx;"/>
private OracleConnection Testconnection = new OracleConnection((string)new System.Configuration.AppSettingsReader().GetValue("Test", typeof(string)));
於是,我打開連接,請檢查它是否被打開(這是),並嘗試做以下Oracle命令。
var accountOpenDate = new OracleCommand("select creationDate from tbl_user where id=:userid", this.Testconnection);
getIsbAaccountOpenDate.Parameters.Add(":userid", this.IsbUserId);
string isbAccountOpenDate = getIsbAaccountOpenDate.ExecuteNonQuery().ToString();
Oracle的命令是正確的,當我在SQL Developer中執行它它的工作原理,但是當我執行代碼的isbAccountOpenDate值爲-1。 我已經嘗試了一切,所以不知道該做什麼。
在此先感謝
對不起,那不是。我甚至試圖在語句中添加ISBuserid的值,並且我仍然得到相同的結果 – schumitza
@APC是正確的,ExecuteNonQuery方法執行該命令並返回受影響的行數;如果語句不是「INSERT」,「UPDATE」或「DELETE」,它總是返回「-1」。你應該使用'ExecuteScalar'方法(我已經更新了我提出的解決方案)。我擔心參數傳遞,我沒有注意到使用了錯誤的方法。 –
非常感謝,我陷入了同樣的重複邏輯,無法打破它。 – schumitza