2012-01-27 15 views
1

CommandType = Textのときに、パラメータコレクションを取得する方法はSqlCommandですか?例えばSqlCommand(CommandType Text)がパラメータコレクションを取得する

string MyDinamicSql = @"SELECT * FROM USERS where USERName = @Param1 and [email protected]"; 
SqlCommand comand = connection.CreateCommand(); 
comand.CommandText = MyDinamicSql; 
comand.CommandType = System.Data.CommandType.Text; 

//Do something for fill comand.Parameters from MyDinamicSql... 

は私が欲しいとパラメータコレクションを取得する方法[@ Param1を、@ PARAM2] ...私は、SQLクエリを知らない(彼らは動的である)と私がしたいです私のアプリケーションがそれらを入力コントロールとして作成するためのパラメータを取得します。

SqlCommandBuilder.DeriveParameters(command)でこれを行うことはできません。これはストアドプロシージャでのみ機能するためです。

ありがとうございました!

+0

SQL文字列はどのように生成されていますか?コードから構築されているのですか、ユーザーからのものですか? –

+0

これらはパラメータ名の格納場所なしで書かれています...: - ユーザーからのもので、私のアプリはクエリパラメータを知らない。 –

+0

デルファイでは、FetchParams(ClientDataSet上)のようなものがありました。そのエンジンがSQLを解析してこれを実行します。しかし、C#で私はそれのようなものは見つかりませんでした。 –

答えて

2

いいえ - SQL Serverがコマンドを解析するまでは、単なる文字列です。

+0

のように見えるのだろうと思う。Ok、SQL Serverがパラメータ・コレクションを取得するためにコマンド・テキストを解析する方法があるのだろうか? –

+0

SQL Serverはパラメータを指定しない限り試してみません。 – egrunin

関連する問題