kav@94 Ответов: 1

Как я могу отобразить данные в gridview на основе даты, введенной в текстовое поле с помощью C#


У меня есть следующие столбцы в моей базе данных как

Sno                Status              FromDate              ToDate
1                  Pending             02/20/2017            02/26/2017
2                  Hold                01/10/2017            01/25/2017
3                  Completed           02/21/2017            02/26/2017
4                  Completed           02/22/2017            02/28/2017
5                  Hold                01/15/2017            01/30/2017
6                  Pending             01/20/2017            02/22/2017


Если мы введем 25.02.2017 в текстовое поле и нажмем get, то мне нужно показать количество нижеприведенных записей в gridview как

Pending              Hold                Completed
  1                    0                     2


Графа 1 в ожидании первой записи в базе данных как это от и до дата между диапазоне 02/25/2017, кол-во 2 в 3-й и 4-й запись в базе данных как это от и до дата между диапазоне 02/25/2017 и удерживайте насчитывает 0 в качестве даты, указанной в текстовое поле не содержит в трюме.как я могу это сделать может ли кто нибудь помочь мне так как я новичок в этом деле

Что я уже пробовал:

Как я могу сделать это либо с помощью кода c#, либо с помощью запроса

1 Ответов

Рейтинг:
2

debasish mishra

Это идея, приведенная ниже в SQL.Вы можете получить некоторую ошибку при выполнении, потому что этот нижеприведенный запрос не был проверен.Но идея лежит между тем, где состояние и внутреннее соединяются


SELECT S.Status,  C.cnt
  FROM YourTable S
       INNER JOIN (SELECT Status, count(Status) as cnt
                     FROM YourTable
                    GROUP BY Status) C ON S.Status= C.Status where CONVERT(VARCHAR(10), inputdate, 101)between CONVERT(VARCHAR(10),S.FromDate,101) and CONVERT(VARCHAR(10),S.ToDate,101) 


В приведенном выше запросе
inputdate
это дата, которую вы передаете из своего кода c# в хранимую процедуру в качестве входного параметра.

После получения этих данных из sql отправьте их в таблицу данных или список того, что вы когда-либо использовали, а затем свяжите с таблицей данных/gridview.


kav@94

я хочу сделать это через код c#, как я уже пробовал с помощью sql-запроса

[no name]

Как вы уже упоминали с помощью C# или query, поэтому я опубликовал SQL-запрос.Если вы можете достичь этого с помощью SQL, то зачем вам нужно делать это с помощью C#.Просто спрашиваю.

kav@94

поскольку sql запрос не работает как я могу передать введенную дату в текстовое поле sql запросу

[no name]

Вы можете получить значение текстового поля на основе Texboxid.Текст, а затем использовать, как это показано ниже.Но в сценарии реального времени вы должны использовать принципы многоуровневой архитектуры.Если ваш проект требует ORM, вы можете легко обойтись с Entity framework.:

using (SqlConnection con = new SqlConnection(your connectionstring)) {
using (SqlCommand cmd = new SqlCommand("ваше имя хранимой процедуры", con)) {
УМК.CommandType = CommandType.Хранимая процедура;

cmd.Parameters.Add("@inputDate", SqlDbType.VarChar).Значение = txtDateToCompare.Текст;


против.Открыть();
УМК.Метод executenonquery();
}

kav@94

У меня уже есть запрос как я могу получить данные с помощью этого запроса передав дату которую я ввел в текстовое поле и проверив находится ли она между датой от даты и до даты
Выберите (SELECT PName FROM PDet WHERE (ID = dws.Изъятия )) Как Имяпроекта, раздел как название,
(Выберите имя пользователя WHERE (ID = dws.Dname)) Как Devname, статус,
(Выберите имя пользователя как User_a WHERE (ID = dws.Адело))
AS AssWork, FromDate, ToDate, DescATask FROM Status AS ws

[no name]

Я не вижу никакого процентного расчета из вашего вышеприведенного запроса.

kav@94

каков процентный расчет, о котором вы спрашиваете, мой вышеприведенный запрос дает мне эти данные
Статус Sno FromDate ToDate
1 до 02/20/2017 02/26/2017
2 Держите 01/10/2017 01/25/2017
3 завершено 21.02.2017 26.02.2017
4 завершено 22.02.2017 28.02.2017
5 Держите 01/15/2017 01/30/2017
6 до 01/20/2017 02/22/2017
теперь мне нужно изменить мой вышеприведенный запрос, чтобы получить эти данные
Отложенное Удержание Завершено
1 0 2

[no name]

Вы пробовали выполнить вышеописанный запрос, созданный в решении?

kav@94

нет используя этот запрос мне нужно создать это решение

У меня уже есть запрос как я могу получить данные с помощью этого запроса передав дату которую я ввел в текстовое поле и проверив находится ли она между датой от даты и до даты
Выберите (SELECT PName FROM PDet WHERE (ID = dws.Изъятия )) Как Имяпроекта, раздел как название,
(Выберите имя пользователя WHERE (ID = dws.Dname)) Как Devname, статус,
(Выберите имя пользователя как User_a WHERE (ID = dws.Адело))
AS AssWork, FromDate, ToDate, DescATask FROM Status AS ws