Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > ASP.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика


Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2021, 15:47   #1
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 60
По умолчанию проблема с SqlConnection

Здравствуйте.
у меня проблема, уже неделю мучаюсь. Сначала все работает, но потом в SqlConnection con = new SqlConnection(connectionString); значение null становится и не работает хранимая процедура. Подскажите, пожалуйста, в чем может быть проблема.
Код:
string sqlExpression = "[gme].[Diagnostic_Tests]";

                SqlConnection con = new SqlConnection(connectionString);

                string year = Convert.ToString(this.TextBox5.Text);
                string month = Convert.ToString(this.TextBox4.Text);

                con.Open();
                SqlCommand comm = new SqlCommand(sqlExpression, con);

                // указываем, что команда представляет хранимую процедуру
                comm.CommandType = System.Data.CommandType.StoredProcedure;

                // добавляем параметры
                SqlParameter yearParam = new SqlParameter
                {
                    ParameterName = "@year",
                    Value = Convert.ToInt32(year)
                };

                comm.Parameters.Add(yearParam);

                SqlParameter monthParam = new SqlParameter
                {
                    ParameterName = "@month",
                    Value = Convert.ToInt32(month)
                };
                comm.Parameters.Add(monthParam);

                SqlDataReader dr = comm.ExecuteReader();

                if (dr.HasRows)
                {
                    var rowInd1 = 0;
                    while (dr.Read())
                    {
                        var rowInd1 = 0;
                        rowInd1++;
                        xlSheet.Cell(rowInd + 5, 1).Value = dr[0];
                    }
                }
                dr.Close();

                con.Close();
                con.Dispose();
rita616 вне форума Ответить с цитированием
Старый 01.12.2021, 19:08   #2
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 60
По умолчанию

Получается, когда добавляю DataReader, передаётся null в SqlConnection. Без него всё работает.
rita616 вне форума Ответить с цитированием
Старый 02.12.2021, 16:54   #3
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 60
По умолчанию

Код:
with d63 (id, dt, enp, det) as 
(
	select dc.id, dc.DATE_1, drp.ENP,
	iif(
		datediff(year, dp.DR, dc.DATE_2) - 
			iif(month(dp.DR) < month(dc.DATE_2), 0,
			iif(month(dp.DR) > month(dc.DATE_2), 1,
			iif(day(dp.DR) >= day(dc.DATE_2), 1, 0))) < 18,
		1, 0
	)
	from WorkDB.reg.DataOfCase as dc 
	inner join WorkDB.reg.DataRecPatients as drp on dc.idDataRecPatient = drp.id 
	inner join WorkDB.reg.DataPatients as dp on drp.idDataPatient = dp.id 
	where dc.StatusBackflow = 1 and dc.SUMPLast > 0 
	and dc.yearrep = @yearrep and dc.monthrep between 1 and @monthrep 
	and dc.CELP = 63
), 
d631 (id, dt, enp, det) as 
(
	select distinct d63.id, d63.dt, d63.enp, d63.det 
	from WorkDB.reg.DataOfCase as dc 
	inner join WorkDB.reg.DataRecPatients as drp on dc.idDataRecPatient = drp.id 
	inner join d63 on d63.enp = drp.enp and dc.CELP = 2 and datediff(day, dc.DATE_2, d63.dt) between 0 and 90 
	where dc.StatusBackflow = 1 and dc.SUMPLast > 0
), 
d632 (id, dt, enp, det) as 
(
	select distinct d63.id, d63.dt, d63.enp, d63.det 
	from WorkDB.reg.DataOfCase as dc 
	inner join WorkDB.reg.DataRecPatients as drp on dc.idDataRecPatient = drp.id 
	inner join d63 on d63.enp = drp.enp and dc.CELP = 2 and datediff(day, dc.DATE_2, d63.dt) between 0 and 90 
	where dc.StatusBackflow = 1 and dc.SUMPLast > 0
), 
d633 (id, dt, enp, det) as 
(
	select d63.id, d63.dt, d63.enp, d63.det 
	from d63 
	left outer join d631 on d63.enp = d631.enp 
	where d631.enp is null
), 
d1 (lpu, ed, sump) as 
(
	select dc.LPU, isnull(sum(ds.KOL_USL), 0) as cnt, isnull(sum(ds.SUMV_USL), 0) as sump 
	from d632 
	inner join WorkDB.reg.DataOfCase as dc on dc.id = d632.id 
	inner join WorkDB.reg.DataServices as ds on ds.idDataOfCase = dc.id 
	group by dc.LPU
), 
d2 (lpu, ed, sump) as 
(
	select dc.LPU, isnull(sum(ds.KOL_USL), 0) as cnt, isnull(sum(ds.SUMV_USL), 0) as sump 
	from d633 
	inner join WorkDB.reg.DataOfCase as dc on dc.id = d633.id 
	inner join WorkDB.reg.DataServices as ds on ds.idDataOfCase = dc.id 
	group by dc.LPU
),
d3 (lpu, ed, sump) as 
(
	select dc.LPU, isnull(sum(ds.KOL_USL), 0) as cnt, isnull(sum(ds.SUMV_USL), 0) as sump 
	from d632 
	inner join WorkDB.reg.DataOfCase as dc on dc.id = d632.id and d632.det = 1 
	inner join WorkDB.reg.DataServices as ds on ds.idDataOfCase = dc.id 
	group by dc.LPU
), 
d4 (lpu, ed, sump) as 
(
	select dc.LPU, isnull(sum(ds.KOL_USL), 0) as cnt, isnull(sum(ds.SUMV_USL), 0) as sump 
	from d633 
	inner join WorkDB.reg.DataOfCase as dc on dc.id = d633.id and d633.det = 1 
	inner join WorkDB.reg.DataServices as ds on ds.idDataOfCase = dc.id 
	group by dc.LPU
) 
select mo.ShortName + ' [' + d1.lpu + ']', 
cast(d1.ed as int), d1.sump, 
cast(isnull(d3.ed, 0) as int), isnull(d3.sump, 0), 
cast(isnull(d2.ed, 0) as int), isnull(d2.sump, 0), 
cast(isnull(d4.ed, 0) as int), isnull(d4.sump, 0) 
from d1 
inner join WorkDB.dic.MedicalOrgs as mo on mo.id = d1.lpu 
left outer join d2 on d1.lpu = d2.lpu 
left outer join d3 on d1.lpu = d3.lpu 
left outer join d4 on d1.lpu = d4.lpu 
order by d1.lpu
не работает этот запрос в asp.net Даже через хранимую процедуру
rita616 вне форума Ответить с цитированием
Старый 03.12.2021, 04:44   #4
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,536
По умолчанию

Cлишком сложно, разбивайте на несколько, а возможно и на много более простых запросов и выполняйте их по очереди.
Alar вне форума Ответить с цитированием
Старый 08.12.2021, 14:39   #5
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 60
По умолчанию

Разобралась. Спасибо.
rita616 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQLConnection nibufep Общие вопросы Delphi 12 20.08.2016 12:34
sqlconnection шифровка Madmaxisss Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 14 13.05.2013 20:33
Отключение SQLConnection Cyworc БД в Delphi 4 19.03.2012 03:46
Где SQLConnection хранит имя и пароль? IceExecutioner БД в Delphi 5 09.03.2011 08:09
SqlConnection D.O.G Общие вопросы Delphi 0 04.10.2010 08:57

Реклама для незарегистрированных, регистрация на форуме