Я работаю над школьным проектом
Я хочу получить всю информацию о группах, и это прекрасно работает. Пока я не доберусь до жанров.
Жанр немного особенный, потому что группа может иметь несколько жанров, и наоборот.
Итак, в SQL у меня есть таблица Bands, таблица Genre и таблица Band_Genre
Если я выполню внутреннее соединение
SELECT *
FROM Band
INNER JOIN Band_Genre
ON Band.ID = Band_Genre.BandID
В SQL все работает нормально, но когда я пытаюсь использовать второй модуль чтения с этим оператором, он возвращает ноль.
Но сейчас я хочу заполнить сетку данных самими жанрами, а не идентификаторами.
Поэтому я думаю, что мне нужно получить идентификатор из внутреннего соединения и связать его с Genre.Name
Может быть, это немного пойдет далеко, но
Я был бы рад, если бы кто-нибудь уже смог получить идентификаторы в ObservableCollection.
Чтобы Datagrid отображал Жанры: 1, 3, например.
Заранее спасибо
C#
//Property
private ObservableCollection genres;
public ObservableCollection Genres
{
get { return genres; }
set { genres = value; }
}
//Method
public static ObservableCollection GetBands()
{
ObservableCollection list = new ObservableCollection();
try
{
string provider = ConfigurationManager.ConnectionStrings["ConnectionString"].ProviderName;
string connectionstring = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
DbConnection con = DbProviderFactories.GetFactory(provider).CreateConnection();
con.ConnectionString = connectionstring;
con.Open();
DbCommand command = DbProviderFactories.GetFactory(provider).CreateCommand();
command.CommandType = System.Data.CommandType.Text;
command.Connection = con;
command.CommandText = "SELECT * FROM Band";
//Bands ophalen
DbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Band b = new Band()
{
ID = reader["ID"].ToString(),
Name = reader["Name"].ToString(),
Picture = reader["Picture"].ToString(),
Description = reader["Description"].ToString(),
Twitter = reader["Twitter"].ToString(),
Facebook = reader["Facebook"].ToString(),
//Genres = (Genre)reader["Genres"] lijst van genres kunnen doorgeven, probleem met meerdere genres per band. Kijken filmpje inner joint
};
if (!DBNull.Value.Equals(reader["Picture"]))
{
b.Picture = reader["Picture"].ToString();
}
else
{
b.Picture = null;
}
list.Add(b);
}
//Genres ophalen via INNER JOIN
DbCommand command2 = DbProviderFactories.GetFactory(provider).CreateCommand();
command2.CommandType = System.Data.CommandType.Text;
command2.Connection = con;
command2.CommandText = "SELECT * FROM Band INNER JOIN Band_Genre On Band.ID = Band_Genre.BandID";
//Bands ophalen
DbDataReader reader2 = command2.ExecuteReader();
while (reader2.Read())
{
Genre g = new Genre()
{
ID = reader2["GenreID"].ToString(),
//Name = reader2[
};
}
reader.Close();
reader2.Close();
con.Close();
}
XAML:
Подробнее здесь: https://stackoverflow.com/questions/201 ... in-c-sharp
Оператор внутреннего соединения SQL в C# ⇐ C#
Место общения программистов C#
1769356855
Anonymous
Я работаю над школьным проектом
Я хочу получить всю информацию о группах, и это прекрасно работает. Пока я не доберусь до жанров.
Жанр немного особенный, потому что группа может иметь несколько жанров, и наоборот.
Итак, в SQL у меня есть таблица Bands, таблица Genre и таблица Band_Genre
Если я выполню внутреннее соединение
SELECT *
FROM Band
INNER JOIN Band_Genre
ON Band.ID = Band_Genre.BandID
В SQL все работает нормально, но когда я пытаюсь использовать второй модуль чтения с этим оператором, он возвращает ноль.
Но сейчас я хочу заполнить сетку данных самими жанрами, а не идентификаторами.
Поэтому я думаю, что мне нужно получить идентификатор из внутреннего соединения и связать его с Genre.Name
Может быть, это немного пойдет далеко, но
Я был бы рад, если бы кто-нибудь уже смог получить идентификаторы в ObservableCollection.
Чтобы Datagrid отображал Жанры: 1, 3, например.
Заранее спасибо
C#
//Property
private ObservableCollection genres;
public ObservableCollection Genres
{
get { return genres; }
set { genres = value; }
}
//Method
public static ObservableCollection GetBands()
{
ObservableCollection list = new ObservableCollection();
try
{
string provider = ConfigurationManager.ConnectionStrings["ConnectionString"].ProviderName;
string connectionstring = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
DbConnection con = DbProviderFactories.GetFactory(provider).CreateConnection();
con.ConnectionString = connectionstring;
con.Open();
DbCommand command = DbProviderFactories.GetFactory(provider).CreateCommand();
command.CommandType = System.Data.CommandType.Text;
command.Connection = con;
command.CommandText = "SELECT * FROM Band";
//Bands ophalen
DbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Band b = new Band()
{
ID = reader["ID"].ToString(),
Name = reader["Name"].ToString(),
Picture = reader["Picture"].ToString(),
Description = reader["Description"].ToString(),
Twitter = reader["Twitter"].ToString(),
Facebook = reader["Facebook"].ToString(),
//Genres = (Genre)reader["Genres"] lijst van genres kunnen doorgeven, probleem met meerdere genres per band. Kijken filmpje inner joint
};
if (!DBNull.Value.Equals(reader["Picture"]))
{
b.Picture = reader["Picture"].ToString();
}
else
{
b.Picture = null;
}
list.Add(b);
}
//Genres ophalen via INNER JOIN
DbCommand command2 = DbProviderFactories.GetFactory(provider).CreateCommand();
command2.CommandType = System.Data.CommandType.Text;
command2.Connection = con;
command2.CommandText = "SELECT * FROM Band INNER JOIN Band_Genre On Band.ID = Band_Genre.BandID";
//Bands ophalen
DbDataReader reader2 = command2.ExecuteReader();
while (reader2.Read())
{
Genre g = new Genre()
{
ID = reader2["GenreID"].ToString(),
//Name = reader2[
};
}
reader.Close();
reader2.Close();
con.Close();
}
XAML:
Подробнее здесь: [url]https://stackoverflow.com/questions/20141214/sql-inner-join-statement-in-c-sharp[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия