Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Apollon89
2 / 2 / 1
Регистрация: 29.08.2011
Сообщений: 150
1

Выпадающий список

27.11.2011, 22:00. Просмотров 2869. Ответов 13
Метки нет (Все метки)

Всем привет! Помогите решить следующую проблемку.У меня в задании написано на всех формах для таблиц необходимо отобразить все поля кроме полей связи в первичных таблицах,а поля связи во вторичных таблицах отобразить с помощью выпадающих списков,таким образом,вместо кодов связи должны отображаться значения из первичных таблиц,соответствующие этим кодам.

В итоге у меня получилась такая вот каша!

Выпадающий список


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
 public DataTable GetCasseteAndGenre()
        {
            SqlConnection con = new SqlConnection("Data Source=.\\;Initial catalog = Prokat;Integrated Security = true");
            SqlCommand cmd = new SqlCommand("SELECT Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name From Cassete C,Genre G Where G.Id_Genre=C.Id_Genre", con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds, "Cassete");
            return ds.Tables[0];
        }
 
private void Cassete_Load(object sender, EventArgs e)
        {
            DataTable cassete = Program.StoreDB.GetCasseteAndGenre();
            TextBoxMovieName.DataBindings.Add("Text", cassete, "Movie_Name");
            ComboBoxGenreName.DataSource = cassete;
            ComboBoxGenreName.DisplayMember = "Genre_Name";
            TextBoxYear.DataBindings.Add("Text", cassete, "Year_of_Creation");
            TextBoxProducer.DataBindings.Add("Text", cassete, "Producer");
            TextBoxCountry.DataBindings.Add("Text", cassete, "Country");
            TextBoxActor.DataBindings.Add("Text", cassete, "Actor");
            TextBoxPostingData.DataBindings.Add("Text", cassete, "Posting_Date");
            TextBoxCost.DataBindings.Add("Text", cassete, "Cost", true, DataSourceUpdateMode.OnValidation, 0, "c");
            storeBinding = this.BindingContext[cassete];
            storeBinding.PositionChanged += new EventHandler(storeBinding_PositionChanged);
        }

Если источник выпадающему списку просто поставить таблицу жанры,то при прокрутке фильмов не будут отображаться соответствующие им жанры.Помогите решить данную проблему.Заранее спасибо!!!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 22:00
Ответы с готовыми решениями:

Выпадающий список
Всем привет! Хочу узнать, можно ли в ячейке одной таблицы вывести информацию сразу из нескольких...

C# выпадающий список
Доброго дня. Подскажите, пожалуйста, как организовать выпадающий список со значениями, взятыми из...

выпадающий список в ComboBox
Здравствуйте!!! У меня дипломная работа и пишу на C#, мне нужно сделать выпадающий список в...

Выпадающий список в ячейках DataGridView
Здравствуйте, возникла такая проблема не знаю как правильно вставить ComboBox в ячейку...

OleDb, счетчик и выпадающий список
Добрый день. Есть проблема. Есть база данных. В ней таблица Users. Обычные текстовые поля я...

13
SNOOPYKZ
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
28.11.2011, 06:42 2
Измени
C#
1
SqlCommand cmd = new SqlCommand("SELECT Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name From Cassete C,Genre G Where G.Id_Genre=C.Id_Genre", con);
на
C#
1
SqlCommand cmd = new SqlCommand("SELECT DISTINCT Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name From Cassete C,Genre G Where G.Id_Genre=C.Id_Genre", con);
0
Apollon89
2 / 2 / 1
Регистрация: 29.08.2011
Сообщений: 150
28.11.2011, 09:18  [ТС] 3
Цитата Сообщение от SNOOPYKZ Посмотреть сообщение
Измени
C#
1
SqlCommand cmd = new SqlCommand("SELECT Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name From Cassete C,Genre G Where G.Id_Genre=C.Id_Genre", con);
на
C#
1
SqlCommand cmd = new SqlCommand("SELECT DISTINCT Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name From Cassete C,Genre G Where G.Id_Genre=C.Id_Genre", con);
Не помогло! Он просто разбросал жанры в разном порядке. А мне нужно что в комбобоксе отображалось реальное кол-во жанров,столько сколько записано в самой таблице жанров+при переключении фильмов отображался его жанр.
0
SNOOPYKZ
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
28.11.2011, 12:23 4
тогда другой аналог "унифицирования" записей - группировка
C#
1
SELECT Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name From Cassete C,Genre G Where G.Id_Genre=C.Id_Genre group by Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name
0
28.11.2011, 12:23
Apollon89
2 / 2 / 1
Регистрация: 29.08.2011
Сообщений: 150
28.11.2011, 12:28  [ТС] 5
Цитата Сообщение от SNOOPYKZ Посмотреть сообщение
тогда другой аналог "унифицирования" записей - группировка
C#
1
SELECT Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name From Cassete C,Genre G Where G.Id_Genre=C.Id_Genre group by Movie_Name,Year_of_Creation,Producer,Country,Actor,Posting_Date,Cost,Genre_Name
К сожалению то нет(( Такая же картина как и с Distinct
0
SNOOPYKZ
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
28.11.2011, 12:29 6
вышли проект и базу
0
Apollon89
2 / 2 / 1
Регистрация: 29.08.2011
Сообщений: 150
28.11.2011, 12:39  [ТС] 7
Цитата Сообщение от SNOOPYKZ Посмотреть сообщение
вышли проект и базу
http://7w.ifolder.ru/27225065
0
SNOOPYKZ
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
28.11.2011, 13:52 8
Посмотрел твой проект - чувак - ты простых решений не ищешь

Опуская лирику:
У тебя есть строки
C#
1
2
3
4
            DataTable cassete = Program.StoreDB.GetCasseteAndGenre();
            TextBoxMovieName.DataBindings.Add("Text", cassete, "Movie_Name");
            ComboBoxGenreName.DataSource = cassete;
            ComboBoxGenreName.DisplayMember = "Genre_Name";
измени до вида
C#
1
2
3
4
5
            DataTable cassete = Program.StoreDB.GetCasseteAndGenre();
            DataTable genre = Program.StoreDB.GetGenre();
            TextBoxMovieName.DataBindings.Add("Text", cassete, "Movie_Name");
            ComboBoxGenreName.DataSource = genre;
            ComboBoxGenreName.DisplayMember = "Genre_Name";
0
Apollon89
2 / 2 / 1
Регистрация: 29.08.2011
Сообщений: 150
28.11.2011, 14:12  [ТС] 9
Цитата Сообщение от SNOOPYKZ Посмотреть сообщение
Посмотрел твой проект - чувак - ты простых решений не ищешь

Опуская лирику:
У тебя есть строки
C#
1
2
3
4
            DataTable cassete = Program.StoreDB.GetCasseteAndGenre();
            TextBoxMovieName.DataBindings.Add("Text", cassete, "Movie_Name");
            ComboBoxGenreName.DataSource = cassete;
            ComboBoxGenreName.DisplayMember = "Genre_Name";
измени до вида
C#
1
2
3
4
5
            DataTable cassete = Program.StoreDB.GetCasseteAndGenre();
            DataTable genre = Program.StoreDB.GetGenre();
            TextBoxMovieName.DataBindings.Add("Text", cassete, "Movie_Name");
            ComboBoxGenreName.DataSource = genre;
            ComboBoxGenreName.DisplayMember = "Genre_Name";

Так я такой вариант давно уже попробовал,но он меня не устраивает так как я опять же говорю,при переключении фильмов строка жанр стоит на месте.
0
SNOOPYKZ
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
28.11.2011, 14:53 10
внеси некоторые изменения
0
Вложения
Тип файла: rar ChangeList.rar (2.4 Кб, 28 просмотров)
SNOOPYKZ
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
28.11.2011, 14:54 11
имей ввиду, что патч нужно делать с учетом моего мессага http://www.cyberforum.ru/post2222092.html
0
SNOOPYKZ
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
28.11.2011, 15:06 12
ты как-то сложно все делаешь.
в аттаче пример формы, где все намного проще

1. добавь новые файлы в проект
2. создай новую кнопку и вызови форму
0
Миниатюры
Выпадающий список  
Вложения
Тип файла: rar Form2.rar (5.8 Кб, 25 просмотров)
Apollon89
2 / 2 / 1
Регистрация: 29.08.2011
Сообщений: 150
28.11.2011, 15:37  [ТС] 13
Цитата Сообщение от SNOOPYKZ Посмотреть сообщение
внеси некоторые изменения
Та же проблема(

Добавлено через 1 минуту
Не увидел сообщение до конца! Спс ща буду пробовать!
0
SNOOPYKZ
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
29.11.2011, 07:07 14
забыл еще кое что приложить

что бы данный DataSet работал, проверь есть ли его connection string у тебя в settings
Один из способов это проверить: открой в блокноте файл .\Properties\Settings.settings
и псомотри, есть ли такой код там
XML
1
2
3
4
5
6
7
8
    <Setting Name="ProkatConnectionString" Type="(Connection string)" Scope="Application">
      <DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
  &lt;ConnectionString&gt;Data Source=.\SQLExpress;Initial Catalog=Prokat;Integrated Security=True&lt;/ConnectionString&gt;
  &lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
      <Value Profile="(Default)">Data Source=.\SQLExpress;Initial Catalog=Prokat;Integrated Security=True</Value>
    </Setting>
0
Вложения
Тип файла: rar Database.rar (21.4 Кб, 11 просмотров)
29.11.2011, 07:07
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 07:07

Выпадающий список в ячейке DataGrid для данных из связанной таблицы
Здравствуйте! Имеется БД MSSQLServer 2012. Там связанные таблицы: Сотрудники, Должности. Соединил...

Выпадающий список после точки
Как сделать, чтобы в RichTextBox/TextBox после ввода точки выпадал список по типу System.&lt;список&gt;...

PropertyGrid - выпадающий список объектов
Я формирую список выпадающих значений в PropertyGrid программно. Я хочу чтобы пользователь выбирал...


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

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

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