powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Если процедура возвращает селект и один параметр???
19 сообщений из 19, страница 1 из 1
Если процедура возвращает селект и один параметр???
    #33676017
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется хранимая процедура, которая возвращает выборку из нескольких записей и один параметр. Как при помощи адаптера выполнить эту процедуру, передав в неё ряд других параметров, и получить отдельно результат селекта, который надо забиндить с DataSet и отдельно параметр, возвращаемый процедурой.

Заранее спасибо.
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33676597
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто скрестите примеры чтение резалтсета и чтения параметра:

// Создание команды
IDataReader reader = command.ExecuteReader();
// чтение resultset
reader.Close();
// чтение параметра
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33676938
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
adapter.SelectCommand.Parameters.Add("YourParameterName");
adapter.SelectCommand.Parameters["YourParameterName"].Direction = ParameterDirection.Output;
adaper.Fill(ds,"TableName");
object o = adapter.SelectCommand.Parameters["YourParameterName"].Value;
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677071
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы!
Сделал вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SqlConnection thisConnection = new SqlConnection(strCon);
thisConnection.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "paging";
cmd.Connection = thisConnection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@NumPage", SqlDbType.Int).Direction = ParameterDirection.Input;
cmd.Parameters.Add("@NumPage", SqlDbType.Int).Value=strNum;
cmd.Parameters.Add("@CountRecOnPage", SqlDbType.Int).Direction=ParameterDirection.Input;
cmd.Parameters.Add("@CountRecOnPage", SqlDbType.Int).Value= 5 ;
cmd.Parameters.Add("@CountRec", SqlDbType.Int).Direction = ParameterDirection.Output;
SqlDataAdapter adapter = new SqlDataAdapter("", thisConnection);
adapter = new SqlDataAdapter(cmd);
DataTable ds = new DataTable();
adapter.Fill(ds);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
adapter.Dispose();
count=(int)adapter.SelectCommand.Parameters["CountRec"].Value;
thisConnection.Close();

Вот при выполнении этого кода происходит ошибка на этапе:
adapter.Fill(ds);

Пишет, что Procedure or function paging has too many arguments specified.
В чём причина?

Заранее спасибо.
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677082
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
cmd.Parameters.Add("@NumPage", SqlDbType.Int).Direction = ParameterDirection.Input;
cmd.Parameters.Add("@NumPage", SqlDbType.Int).Value=strNum;
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677087
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вы процедуру покажите, а то здесь медиумов нет
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677090
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не понял
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677095
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create procedure paging 
@NumPage int,
@CountRecOnPage int,
@CountRec int output 
as
declare @low int, @high int 
Set @CountRec=(select count(*) from id)
Set @low=@NumPage*@CountRecOnPage-@CountRecOnPage;
Set @high=@NumPage*@CountRecOnPage;
declare @t table
(IdTmp Char( 10 ), NameTmp Char( 10 ),
num int identity( 1 , 1 ) not null)
insert into t (IdTmp, NameTmp) select * from id order by asc
select * from t where num between @low and @high
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677098
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а.. не обратил вниамния...
а нафиг вы по два раза параметры добавляете с одним именем?!
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677132
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, точно.

Всё исправил.
Но теперь выводит сообщение:

Formal parameter '@CountRecOnPage' was defined as OUTPUT but the actual parameter not declared OUTPUT.
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677141
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вот это вот тавтология какая-то
Код: plaintext
1.
SqlDataAdapter adapter = new SqlDataAdapter("", thisConnection);
adapter = new SqlDataAdapter(cmd);
не проще сразу
[SRC с№]SqlDataAdapter adapter = new SqlDataAdapter(cmd);[/SRC] ?
и перед методом Fill коннекшн открывать не нужно
Fill проверяет, открыто ли оно, если нет - отркоет, выполнит свое черное дело и закроет
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677148
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LimonadДа, точно.

Всё исправил.
Но теперь выводит сообщение:

Formal parameter '@CountRecOnPage' was defined as OUTPUT but the actual parameter not declared OUTPUT.

дык вы свою процедурину смотрели?
у вас параметр @CountRec оутпутный
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677157
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот параметр такой и указан при добавлении.
Код: plaintext
1.
2.
cmd.Parameters.Add("@CountRec", SqlDbType.Int);
        par.Direction = ParameterDirection.Output;

Он ругается на '@CountRecOnPage'.
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677208
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LimonadЭтот параметр такой и указан при добавлении.
Код: plaintext
1.
2.
cmd.Parameters.Add("@CountRec", SqlDbType.Int);
        par.Direction = ParameterDirection.Output;

Он ругается на '@CountRecOnPage'.
это я заметил
у вас на клиенте где-то прописывается '@CountRecOnPage' отпутным
покажите новый код
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677233
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, спасибо огромное, что помогаете. Уже сам исправил. Вот сейчас опять какая-то чушь.

Ругается на
count=(int)adapter.SelectCommand.Parameters["CountRec"].Value;

Такими вот словами

Object reference not set to an instance of an object
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677242
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин

а так не хотите попробовать:
Код: plaintext
count=(int)adapter.SelectCommand.Parameters["@CountRec"].Value;
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677245
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То же исправил. Объект использовал после Dispose.
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677262
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так че, работает уже?
...
Рейтинг: 0 / 0
Если процедура возвращает селект и один параметр???
    #33677295
Limonad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут ещё с гридом проблемы были и с самой процедурой. Теперь ВСЁ!!!!!!! СПАСИБО ОГРОМНОЕ, вы мне очень помогли.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Если процедура возвращает селект и один параметр???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]