SQLクエリの計算結果を取得するにはどうすればよいですか?.NETとOracleを使用してSQLクエリを読み取る最善の方法
言ってやるが、2例」
CASE 1
RETURN "Process ok"
CASE 2
RETURN "Process failed"
があるこれは、ストアドプロシージャから返されます。
.NET、C#(Windowsフォーム)にこれを読むための最良の方法はどれ?
SQLクエリの計算結果を取得するにはどうすればよいですか?.NETとOracleを使用してSQLクエリを読み取る最善の方法
言ってやるが、2例」
CASE 1
RETURN "Process ok"
CASE 2
RETURN "Process failed"
があるこれは、ストアドプロシージャから返されます。
.NET、C#(Windowsフォーム)にこれを読むための最良の方法はどれ?
複数のレコードを取得できると思われる場合はDataReader
、レコードが1つだけの場合は複数の列がない場合はExecuteScalar
を使用してください。
ここでストアドプロシージャを呼び出すと、読者を取得する方法は、その最初の列を読む:
using(var conn = new OracleConnection("Data Source=oracledb;User Id=UserID;Password=Password;"))
{
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "storedProcedurename";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(...);
conn.Open();
OracleDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
var yourResult = dr[0].ToString();
}
}
ストアドプロシージャを呼び出している場合は、あなたが戻ってレコードセットを取得しようとしている場合、それが依存します。
ストアドプロシージャに関しては、out
またはinout
のパラメータに値を割り当てたり、レコードセットを生成したりすることができます。前者の場合は、Directionプロパティを使用してパラメータの種類を指定する必要があります。後者については、command.CommandType
をCommandType.StoredProcedureに設定する必要がある以外は、すべてが通常のクエリとして機能します。
典型的なSQLクエリは次のようになります。
私はあなたができるだけ汎用コードを取得するには、それを生成するためにDbProviderFactory
を使用することをお勧めしますデータベース接続用として
using (var cmd = connection.CreateCommand())
{
cmd.CommandText = "SELECT something FROM YourTable";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader["something"]);
}
}
}
あなたが何をしようとしたのですか? –
http://msdn.microsoft.com/en-us/library/haa3afyz(v=vs.71).aspxを問い合わせてください。より一般的な質問 –
への一般的な答えですDataReaderを使用して返された文字列を読み取るのはどうですか? – Marco