Получить список параметров из источника данных SQLDataSource с именем хранимой процедуры - PullRequest
5 голосов
/ 11 марта 2009

Есть ли разумный способ получить список ожидаемых параметров из SqlDataSource с именем хранимой процедуры, назначенной ее свойству SelectCommand?

Ответы [ 4 ]

10 голосов
/ 11 марта 2009

Вы можете использовать метод SqlCommandBuilder.DeriveParameters для возврата информации о параметрах, связанных с хранимой процедурой. Итерации по коллекции позволят вам определить имя параметра, тип данных, направление и т. Д.

SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection("myConnectionString");
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "myStoredProcName";
cmd.Connection = conn;

conn.Open();
SqlCommandBuilder.DeriveParameters(cmd);
conn.Close();

SqlParameterCollection collection = cmd.Parameters;

Посмотрите определения классов SqlParameterCollection и SqlParameter для получения дополнительной информации.

1 голос
/ 11 марта 2009

Я не уверен, что вы можете каким-то образом сделать это непосредственно в среде ADO.NET, но вы всегда можете запросить системные представления "sys", чтобы получить эту информацию:

select * from sys.parameters
where object_id in 
      (select object_id from sys.procedures where name = 'YourSProc')

Марк

0 голосов
/ 01 октября 2009

А также с:

EXEC sp_sproc_columns 'YourSProc'
0 голосов
/ 11 марта 2009

У меня нет VS.NET, чтобы попробовать, но .Prepare () может сделать это для вас:)

Или вы можете просто добавить параметры. :)

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