Есть ли способ передать безымянный параметр в хранимую процедуру через SqlCommand (ADO.NET)? - PullRequest
3 голосов
/ 20 января 2011

Я пишу простую оболочку для sp-вызовов, используя SqlCommand Type == StoredProcedure. Я просто хочу передать параметр без указания его имени. Как мне это сделать? cmd.Parameters.Add (param) не работает, он получает только экземпляр SqlParameter. Спасибо за ответы,

Ответы [ 2 ]

3 голосов
/ 20 января 2011

Как насчет попытки использовать 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 голосов
/ 20 января 2011

AFAIK, вы не можете передать параметр без ParameterName.Однако, если вы используете блок приложения доступа к данным Enterprise Library, вы можете сделать что-то вроде этого:

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

Теперь ваш объект Command будет содержать всю информацию о параметрах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...