Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
petya_prog
4 / 4 / 5
Регистрация: 26.04.2013
Сообщений: 61
1

Ado.NET SQL Select запрос многие к многим

22.04.2014, 14:19. Просмотров 685. Ответов 3
Метки нет (Все метки)

Добрый день!
У меня есть несколько таблиц: события, люди, людисобытия
в таблице события содержится id, название... (про людей ничего не указано связь через таблицу люди события)
люди: id, имя
людисобытия: idчеловека, idсобытия

Ado.NET SQL Select запрос многие к многим


Пользователь составляет список людей, нужно вывести только те события, к которым привязан хотя бы 1 человек из списка + удовлетворяющие некоторым критериям (у меня уже готово)

Помогите, пожалуйста, с
нужно вывести только те события, к которым привязан хотя бы 1 человек из списка
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2014, 14:19
Ответы с готовыми решениями:

Entity Framework 6. Code First. Связь один-ко-многим и многие-ко-многим одновременно
Здрасти. Есть таблица юзеров и объявлений. У юзера может быть множество объявлений. Здесь действует...

Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net
Всем привет! Нужно написать клиент-серверное приложение на основе Microsoft Sql Server 2005...

LINQ-запрос при отношении "многие-ко-многим" (Entity Framework)
Добрый день! Второй вечер подряд не могу понять как в случае EF и Linq To Entites составить запрос...

Из Microsoft Sql в ADO.NET
Добрый вечер, импортировал базу access'а в Microsoft Sql. После создал скрипт и запустил его в...

Многие ко многим
Ребята, я в упор не могу понять как реализовать такое отношение. У меня есть сущности файл и...

3
pincet
1374 / 958 / 130
Регистрация: 23.07.2010
Сообщений: 5,185
22.04.2014, 14:54 2
Для SQL Server
создаешь
XML
1
2
3
4
5
6
7
<root>
  <id>12</id>
  <id>13</id>
  <id>14</id>
  <id>15</id>
  
</root>
его в текстовую переменную
дальше
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
create PROCEDURE [dbo].[GetEvents](@xml nvarchar(3000))
as
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
 
    -- Insert statements for procedure here
declare @id int
exec sp_xml_preparedocument @id output,@xml
;with cte
as
(
select * from openxml(@id,'root/id',1)
with(id int)
)
select * from people-events pe
inner join cte
on pe.ppe_idPeople=cte.id
exec sp_xml_removedocument @id
END
1
petya_prog
4 / 4 / 5
Регистрация: 26.04.2013
Сообщений: 61
22.04.2014, 17:02  [ТС] 3
спасибо, а можно чуть подробней?
Цитата Сообщение от pincet Посмотреть сообщение
Для SQL Server
создаешь
Код XML
1
2
3
4
5
6
7
<root>
* <id>12</id>
* <id>13</id>
* <id>14</id>
* <id>15</id>
</root>
куда это нужно записывать?
0
pincet
1374 / 958 / 130
Регистрация: 23.07.2010
Сообщений: 5,185
22.04.2014, 17:34 4
если сервер не MS SQL - сильно не уверен за получение результат
А так поправочка
XML
1
2
3
4
5
6
<root>
  <man id="12"/>
  <man id="13"/>
  <man id="14"/>
  <man id="15"/>
  </root>
и в хранимке
T-SQL
1
select * from openxml(@id,'root/man',1)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
XElement xe = new XElement("root");
List<int> MyList = new List<int>();
            foreach(int i in MyList)
                xe.Add(new XElement("man",
                                    new XAttribute("id",i.ToString())
                                    );
 try
            {
                using (SqlConnection conn = new SqlConnection(cs))
                {
                    conn.Open();
                    SqlCommand sc = conn.CreateCommand();
                    sc.CommandType = CommandType.StoredProcedure;
                    sc.CommandText = @"dbo.GetEvents";
                    sc.Parameters.AddWithValue(@"xml", xe.ToString());
                    sc.ExecuteNonQuery();
                }
              
            }
            catch (SqlException se)
            {
                MessageBox.Show("Ошибка БД\n" + se.Message);
            }
        }
                       );
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2014, 17:34

ADO.NET и литература по SQL для начинающего.
Ребят, посоветуйте литературу по SQL , более-менее доступную для понимания новичком и достаточную...

Сравнение технологий linq to sql и ado net
Какие преимущества и какие недостатки у технологии linq to sql по сравнению с ado net? Существуют...

ADO.NET передача запроса на sql server
Сетевые пакеты запроса передаются на сервер БД по сети друг за другом или параллельно ?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru