Oracle on .NETで作業しているときに新規です。私は過去にSQLで作業してきましたが、この問題に遭遇していませんでした。 は、私は、この接続文字列に接続するOracleサーバーを持っています。そこで、私はそれが開かれた(それは)、以下の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)));
。
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開発者でそれを実行すると、それは動作しますが、私はコードを実行するときisbAccountOpenDateは値を持ち-1。 私はすべてを試したので、もう何をすべきか分かりません。コロンは、バインド変数をidenifyするSQL文で使用されている
getIsbAaccountOpenDate.Parameters.Add(":userid", this.IsbUserId);
. ^
ことなので、私はODPの専門家ではないが、私はこれがあなたの問題だと思う事前
申し訳ありませんが、そうではありません。そして、私はさらに文のISBuseridの値を追加しようとしましたが、私はまだ同じ結果を得ます。 – schumitza
@APCが正しいです、 'ExecuteNonQuery'メソッドはコマンドを実行し、影響を受ける行の数を返します。文が 'INSERT'、' UPDATE'、 'DELETE'でなければ常に' -1'を返します。代わりに 'ExecuteScalar'メソッドを使うべきです(私は既に提案したソリューションを更新しました)。私は間違ったメソッドの使用に気付かなかったというパラメータ渡しを心配していました。 –
多くのおかげで、私は同じ反復的なロジックで立ち往生し、それを壊すことができませんでした。 – schumitza