2015-05-08 2 views
0

У нас есть комбинированное поле с различными жанрами музыки. Мы хотим, чтобы выбранный жанр в поле со списком показывал песни в базе данных, этого жанра, а затем отображал их в datagrid.Выбранный элемент в combobox для datagrid C# SQL

public DataSet sortGenreCBox() 
    { 
     conn.Open(); 

     SqlCommand genreBox = new SqlCommand("Select Distinct Genre From Sang", conn); 
     SqlDataAdapter adapt = new SqlDataAdapter(genreBox); 
     DataSet ds = new DataSet(); 
     adapt.Fill(ds); 

     conn.Close(); 

     return ds; 
    } 

Код показывает, как мы извлекаем жанры из нашей базы данных.

public ChooseSong() 
    { 
     InitializeComponent(); 

     _DBF = new DatabaseFacade(); 

     DataSet dsGenreBox = _DBF.sortGenreCBox(); 
     DataTable dtGenreBox = dsGenreBox.Tables[0]; 
     sortByGenreCBox.DataContext = dtGenreBox; 
     sortByGenreCBox.DisplayMemberPath = dtGenreBox.Columns[0].ToString(); 

     ... 
    } 

Надеется, что вы можете помочь :)

+1

И в чем проблема? –

+0

Мы хотим, чтобы выбранный жанр в поле со списком отображал песни в базе данных этого жанра, а затем отображал его в datagrid. Но мы не знаем как? это наша проблема :-) –

+0

вы следуете за MVVM или просто получаете данные в коде? –

ответ

0

Вы можете получить имя Gerne из выпадающего списка и положить, что Gerne в SQL Query.

Создайте запрос типа:

SqlCommand genreBox = new SqlCommand("SELECT DISTINCT " + sortByGenreCBox.selectedItem + " FROM Sang", conn); 

И установить datagridview.DataSource к DataSet DS.

yourDataGridView.DataSource = ds.tables[0]; 

EDIT:

Вы можете сделать что-то вроде:

public ChooseSong() 
{ 
    string selectedGerne = sortByGerneCBox.selectedItem.text; 
    DataSet ds = DatasortGenreCBox(selectedGerne); 

Тогда вы можете сделать:

 public DataSet sortGenreCBox(string selectedGenre){ 
SqlCommand genreBox = new SqlCommand("SELECT DISTINCT " + selectedGenre + " FROM Sang", conn); 
} 
+0

Нам не разрешено вводить .text после 'string selectedGenre = sortByGenreCBox.selectedItem' –

+0

Извините, что вам нужно сделать .toString(). –

+0

Но все это основные вещи, возможно, вам нужно больше исследовать проблемы, которые у вас есть. На это уже все уже ответили. Удачи. Постскриптум Пожалуйста, отметьте как ответ –

0
public DataSet sortGenreCBox() 
    { 
     conn.Open(); 

     SqlCommand genreBox = new SqlCommand("Select Distinct" + sortByGenreCBox.SelectedItem + "from Sang", conn); 
     SqlDataAdapter adapt = new SqlDataAdapter(genreBox); 
     DataSet ds = new DataSet(); 
     adapt.Fill(ds); 

     conn.Close(); 

     return ds; 
    } 

Когда мы пишем его, он говорит, что он не существует в текущем контенте?

+0

то, что вы там написали, только вернет жанр, вам нужно использовать полный оператор SQL «Выберите материал From place WHERE, – MaCron

Смежные вопросы