2011-01-20 2 views
3

SqlCommand Type == StoredProcedureを使用して、sp呼び出し用の単純なラッパーを作成します。名前を指定せずにパラメータを渡したいだけです。どうすればいいですか? cmd.Parameters.Add(param)が機能せず、SqlParameterインスタンスのみを取得します。 応答ありがとう、名前なしパラメータをSqlCommand(ADO.NET)を介してストアドプロシージャに渡す方法はありますか?

答えて

3

SqlCommandBuilder.DeriveParametersを使用してパラメータコレクションにデータを入力しようとしますか?

使用法:

// Create Command 
SqlCommand command = connection.CreateCommand(); 
command.CommandType = CommandType.StoredProcedure; 
command.CommandText = storedProcedureName; 

// Open Connection 
connection.Open(); 

// Discover Parameters for Stored Procedure and populate command.Parameters Collection. 
// Causes Rountrip to Database. 
SqlCommandBuilder.DeriveParameters(command); 

あなたは明らかに、各パラメータの値を移入する必要があります。

+0

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

0

AFAIK、ParameterNameを使用せずにパラメータを渡すことはできません。ただし、エンタープライズライブラリのデータアクセスアプリケーションブロックを使用する場合は、次のようなことができます。

 Database db = DatabaseFactory.CreateDatabase("DatabaseName"); 
     DbCommand cmd = new SqlCommand("SP Name Here"); 
     cmd.CommandType = CommandType.StoredProcedure; 
     db.DiscoverParameters(cmd); 

Commandオブジェクトには、すべてのパラメータ情報が含まれます。

関連する問題