Member 14108928 Ответов: 1

Отображение результата запроса объединения в gridview in ASP.NET


Я работаю в gridview in asp.net-да.Я хочу показать результат запроса объединения в два отдельных столбца в gridview. два запроса содержат разные результаты.

protected void submit_Click(object sender, EventArgs e)
   {
       using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
       {
           con.Open();
          String query1 = "(select rollno from [dbo].[student_attendance]  where (classname=@classname) AND (date between @date1 and @date2)) UNION (select sum(total_lecture) from [dbo].[student_attendance]  where (classname=@classname) AND (date between @date1 and @date2))";
           SqlCommand cmd = new SqlCommand(query1, con);
           cmd.Parameters.AddWithValue("@classname", "tybsccs(class-A)");
           cmd.Parameters.AddWithValue("@date1", date2.Text);
           cmd.Parameters.AddWithValue("@date2", date3.Text);
           DataTable dt = new DataTable();
           SqlDataAdapter sdf = new SqlDataAdapter(cmd);
           sdf.Fill(dt);
               for (int i = 0; i < dt.Rows.Count; i++)
               {

               GridView1.DataSourceID = null;
               GridView1.DataSource = dt;
               GridView1.DataBind();
               con.Close();
                }
                }}

теперь я хочу rollno на одном столбце girdview и total_lecture на другом столбце в том же gridview

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

это код, который я пробую.. любые изменения, которые я должен сделать

1 Ответов

Рейтинг:
2

phil.o

select from [dbo].[student_attendance]  where (classname=@classname) AND (date between @date1 and @date2)) UNION (select sum(total_lecture) from [dbo].[student_attendance]  where (classname=@classname) AND (date between @date1 and @date2)
Ваш первый запрос не перечисляет и не называет столбцы, которые вы хотите выбрать.

Кроме того, запросы, которые соединяются с UNION заявление должно быть одинаковое количество столбцов.

Оператор SQL UNION[^]

Вы, кажется, объединяете два совершенно разных запроса, которые UNION он не предназначен для этого.

Пример допустимого UNION заявление:
SELECT [student_attendance].[student_attendance_id] AS id, [student_attendance].[student_name] AS name FROM [dbo].[student_attendance] WHERE ([classname]=@classname) AND ([date] BETWEEN @date1 AND @date2)
UNION
SELECT [student_attendance].[student_attendance_id], SUM([total_lecture]) FROM [dbo].[student_attendance] WHERE ([classname]=@classname) AND ([date] BETWEEN @date1 AND @date2)

В качестве дополнительного примечания, ключевые слова, такие как date скорее всего, они будут зарезервированы языком; поэтому, если у вас есть столбец с именем "дата", лучше включить его в соответствующие разделители.


Maciej Los

Превосходно!