С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 15.03.2012
Сообщений: 29

Хранимая процедура для формирования отчета

24.03.2012, 15:42. Показов 1403. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый день.Люди добрые нужна помощь. имеется хранимая процедура
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE PROCEDURE dbo.rep_Vozv_Im (
@datebegin datetime,
@dateend   datetime
)
AS
SET NOCOUNT ON;
 
SELECT      zalbil.NZB, Operzb.DateOp , sprvidzal.title as vidzal, kol, Operzb.SumOp, SprStatus.title AS Status
 FROM 
 Zalbil left JOIN SprVidZal ON Zalbil.VidZal = SprVidZal.kod
  left JOIN SprStatus ON Zalbil.status = SprStatus.kod 
  left JOIN clients ON Zalbil.KodCl = clients.kod
  left join operzb on Zalbil.NZB=Operzb.Nzb
where Zalbil.[status]=2 AND Operzb.KodOp=2 
AND Operzb.DateOp BETWEEN(@datebegin)and (@dateend)
в результате выводятся строки дата которых находится между параметрами
в программе использовать что то не получается выдает ошибку "incorect syntax near (знач первого параметра)"
использую вот такой код. подскажите где кроется ошибка и как ее устранить.?
C#
1
2
3
4
5
6
7
8
private void Vozv_Im_Load(object sender, EventArgs e)
        {  dtp_vozv dtp= this.Owner as dtp_vozv;
            DataSet dsrep = new dsforReport();
            SqlDataAdapter da = new SqlDataAdapter(@"dbo.rep_Vozv_Im(" + dtp.dtpBegin.Value.ToString("dd.MM.yyyy") +" ," + dtp.dtpEnd.Value.ToString("dd.mm.yyyy") + ")" ,  db.conn);
            da.Fill(dsrep.Tables["dtVozv_Im"]);
            crVozv_Im crVozv = new crVozv_Im();
            crVozv.SetDataSource(dsrep.Tables["dtVozv_Im"]);
            crystalReportViewer1.ReportSource = crVozv;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2012, 15:42
Ответы с готовыми решениями:

DataGridView и хранимая процедура - возвращает два отчета
Хранимая процедура SQL Server sp_helplogins возвращает две таблицы. Если связываю с DataGridView то выводится только первая. А мне нужна...

Хранимая процедура
Помогите пожалуйста разобраться, срочно нужно. Я написала хранимую процедуру в oracle. Эта процедура делает выборку user_id и Name из...

Хранимая процедура
доброго времени суток! Не могли бы подсказать, как правильно вызывать хранимую процедуру в сишарпе? Сама процедура написана на sql....

8
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
24.03.2012, 16:07
C#
1
 SqlDataAdapter da = new SqlDataAdapter(@"dbo.rep_Vozv_Im('" + dtp.dtpBegin.Value.ToString("dd.MM.yyyy") +"' ,'" + dtp.dtpEnd.Value.ToString("dd.mm.yyyy") + "')" ,  db.conn);
дату необходимо заключить в одинарные кавычки, а лучше использовать параметры:

C#
1
2
3
SqlDataAdapter da = new SqlDataAdapter(@"dbo.rep_Vozv_Im(@dtBegin, @dtEnd)" ,  db.conn);
da.SelectCommand.Parameters.Add("@dtBegin", SqlDbType.Data).Value = dtp.dtpBegin.Value;
da.SelectCommand.Parameters.Add("@dtEnd", SqlDbType.Data).Value = dtp.dtpEnd.Value
0
0 / 0 / 1
Регистрация: 15.03.2012
Сообщений: 29
24.03.2012, 16:24  [ТС]
Цитата Сообщение от answer99 Посмотреть сообщение
da.Fill(dsrep.Tables["dtVozv_Im"]);
Стопарится на этой строке Incorect syntax near 'dbo'
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
24.03.2012, 16:29
тогда лучше посмотрите пример здесь так как по памяти писал может чего ошибся немного.
1
0 / 0 / 1
Регистрация: 15.03.2012
Сообщений: 29
24.03.2012, 16:54  [ТС]
Если по примеру смотреть то я так понял sqldataadapter не получится использовать? а как же мне тогда данные занести в dataset
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
24.03.2012, 17:33
C#
1
2
3
4
DataTable dt = new DataTable();
dt.Load(reader);
DataSet ds = new DataSet();
ds.Tables.Add(dt, "MyTable");
или без риадера:

C#
1
2
3
SqlDataAdapter ad = new SqlDataAdapter();
ad.SelectCommand = command;
ad.Fill(...);
зы. прекрасно обхожусь без DataSet только с DataTable в большинстве случаев
0
0 / 0 / 1
Регистрация: 15.03.2012
Сообщений: 29
24.03.2012, 17:50  [ТС]
Пробую прямым запросом что тоже пока не получается.
C#
1
2
3
4
5
6
7
8
9
10
11
 SqlDataAdapter da = new SqlDataAdapter(@" SELECT  zalbil.NZB, Operzb.DateOp , sprvidzal.title as vidzal, kol, Operzb.SumOp, SprStatus.title AS Status
 FROM 
 Zalbil left JOIN SprVidZal ON Zalbil.VidZal = SprVidZal.kod
  left JOIN SprStatus ON Zalbil.status = SprStatus.kod 
  left JOIN clients ON Zalbil.KodCl = clients.kod
  left join operzb on Zalbil.NZB=Operzb.Nzb
where Zalbil.[status]=2 AND Operzb.KodOp=2 
 AND Operzb.DateOp between (" + dtp.dtpBegin.Value.ToString() + ") and (" + dtp.dtpEnd.Value.ToString() + ")", db.conn);
          
           
            da.Fill(dsrep.Tables["dtVozv_Im"]);
Ошибка incorect syntax near '.2012'
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
24.03.2012, 20:44
between не требует скобок

З.Ы. проверяйте сначала коррекность запроса в менеджере
0
0 / 0 / 1
Регистрация: 15.03.2012
Сообщений: 29
24.03.2012, 20:47  [ТС]
В менеджере нормально. да и разобрался уже. Спасибо за помощь вот такой вот код получился.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void Vozv_Im_Load(object sender, EventArgs e)
        {  dtp_vozv dtp= this.Owner as dtp_vozv;
            DataSet dsrep = new dsforReport();
    
 
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = new SqlCommand(@"rep_Vozv_Im", db.conn);
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            da.SelectCommand.Parameters.Add("@datebegin", SqlDbType.DateTime).Value = dtp.dtpBegin.Value;
            da.SelectCommand.Parameters.Add("@dateend", SqlDbType.DateTime).Value = dtp.dtpEnd.Value;
 
            da.Fill(dsrep.Tables["dtVozv_Im"]);
            crVozv_Im crVozv = new crVozv_Im();
            crVozv.SetDataSource(dsrep.Tables["dtVozv_Im"]);
            crystalReportViewer1.ReportSource = crVozv;
 
        
        }
зы. Вдруг кому пригодится
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2012, 20:47
Помогаю со студенческими работами здесь

Хранимая процедура
Здравствуйте уважаемые Знатоки! Я прочитал статью об использовании хранимой процедуры Oracke и постарался повторить приведенный в ней...

Хранимая процедура с параметрами в C#
Здравствуйте. Есть хранимая процедура news USE GO /****** Object: StoredProcedure . Script Date: 12.06.2013 21:19:23 ******/ ...

Хранимая процедура начисление
Подскажите пожалуйста как реализовать начисление зарплаты к примеру в sql. Есть три таблицы: сотрудники(idсотрудника,фио,количество...

SQL хранимая процедура
INSERT INTO Beka.dbo.Tabl3(Id, Imei) SELECT t1.Id, t1.Imei FROM Tabl1 AS t1 INNER JOIN Tabl2 AS t2 ON t1.Imei = t2.Imei; Есть...

DataGridView и хранимая процедура.
На форме есть 3 чекбокса. При нажатии кнопки должен отсылаться запрос в базу, вызывая при этом хранимую процедуру с 3 параметрами тру фолс,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru