Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: Соединение таблиц в ASP.NET Добавлено: 11.05.11 01:24  

Автор вопроса:  The_Immortal
По умолчанию Соединение таблиц в ASP.NET
Ребят, я пишу диплом. В качестве реализации выбрана технология ASP.NET. Правда вот соображаю в ней не очень хорошо, хотя стараюсь понять через ваши видео-уроки.
Созрело несколько (наверняка глупых на ваш взгляд) вопросов:

1) У меня на сайте есть множество различных таблиц, которые представлены через SqlDataSource -> GridView. Некоторые колонки в определенных таблицах вычисляются в зависимости от значений других столбцов. Реализовано это непосредственно в самих таблицах с помощью computed columns, но это очень не удобно...
Не могли бы вы, пожалуйста, подсказать как это можно реализовать программно (через банальные арифмитические операции над переменными или же через запросы - понятия не имею, кстати, как и где их использовать)?

2) На одной странице имеется таблица 1 со след. данными:
Имя Кол-во_часов
Иванов 10
Петров 20
Иванов 15

На другой странице содержится таблица 2:
Имя Кол-во_часов
Сидоров 30

Мне нужно создать таблицу 3 на основании предыдущих 2х, сложив одинаковые значения:
Имя Кол-во_часов
Иванов 25
Петров 20
Сидоров 30

А вот как это сделать - не понимаю
Повторюсь, использую SqlDataSource -> GridView.

Быть может, стоит обратить внимание на LINQ - там все проще и понятнее? Только вот проблема что у меня предзащита через 4 дня (дотянул как обычно), а там надо показать полностью реализованную практику...

Спасибо!!!

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 11.05.11 05:08
Вот так примрено. Набирал не в студии может где-то опечатался.
Можно и через LinQ делать.

  1. <asp:GridView ...>
  2.   <Columns>
  3.     ....
  4.     <asp:TemplateField>
  5.       <ItemTemplate>
  6.         <%# ((decimal)Eval("Price")) * ((decimal)Eval("Quantity")) %>
  7.       </ItemTemplate>
  8.     </asp:TemplateField>
  9.   </Columns>
  10. </asp:GridView>

Ответить

Номер ответа: 2
Автор ответа:
 The_Immortal



Вопросов: 3
Ответов: 7
 Профиль | | #2 Добавлено: 11.05.11 14:57
Вроде бы получилось, только без объединения таблиц. То есть вот такой запрос (кстати, подобные запросы можно как-то строить через мастер SqlDataSource -> Configure Data Source..., что очень удобно, т.к. там сразу можно просмотреть результат выполнения сформированного запроса или это возможно делать только вручную посредством редактирования строки SelectCommand непосредственно в коде, а потом щелчком по Refresh Schema?):
SelectCommand="SELECT [name], SUM ([Clock]) FROM [table1] GROUP BY [Prepod_name]"> - получается.
 
А вот более сложный (с объединением таблиц) уже нет:
SelectCommand="SELECT [name], SUM ([Clock]) FROM (SELECT * FROM [table1] UNION SELECT * FROM [table2]) GROUP BY [name]">
Выдает "incorrect syntax near the keyword 'GROUP' - вероятно, это связано с тем, что перед GROUP не должно стоять никаких скобок, а там без них никак... Не знаю как решить эту проблему.
 
Еще пытался использовать View, но я с ним не смог разобраться. Не понимаю в какое место вообще надо это записать:
CREATE VIEW MyView AS SELECT * FROM [table1] UNION SELECT * FROM [table2];
:(

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 12.05.11 03:04
В SQL Server Management Studio (например) набивашеь этот запрос
CREATE VIEW MyView AS SELECT * FROM [table1] UNION SELECT * FROM [table2];
выполняешь его в БД (F5), и вьюха создается.

Насчет ошибки в запросе - попробуй вместо UNION написать UNION ALL

Ответить

Номер ответа: 4
Автор ответа:
 The_Immortal



Вопросов: 3
Ответов: 7
 Профиль | | #4 Добавлено: 13.05.11 23:16
Большое спасибо!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам