Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выборка данных на основании определенных данных, Заранее извеняюсь перед модераторами... 
V
    Опции темы
W1zArD
Дата 27.7.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: нет
Всего: 3



добрый день...
возник вопрос... smile 
как на основе определенного столбца выбрать данные из др. таблицы? о_О
в аттаче вот что:
имеется некая программа, хранящая в бд(access): smile 
страну
города принадлежащие стране.
каким образом мне отобразить города "по стране"? т.е. в combobox выбираем страну а в listbox грузятся города принадлежацие данной стране? о_О  smile 
можно ли обойтись без sql? smile 

заранее благодарю...
*ужос 3 темы подряд!!!... smile 

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  FastTest.7z 55,58 Kb
PM   Вверх
thomas
Дата 27.7.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



W1zArD, 
Привет.
Вот ты создал табконтрол на форме. Чистая закладка "Просмотр данных".
Далее в меню Data --> DataSources
Появиться закладка, там твой ДатаСет(или создавай по новой), а в нем две таблицы. Так вот в таблице Country помимо двух ее полей ниже должен отображаться узел City. Так как эти две таблицы связаны.
А по сему выделяем title для Country, в выпадающем списке выбираем ComboBox. Иконка узла поменялась. Тянем иконку на закладку табконтрола.
Далее тоже самое с title но для города и в выпадающем списке выбираем ListBox иконка поменялась, тянем ее на закладку таб контрола.
Потом на форме выделяем эти контролы и нажав хитрый треугольничек в правом верхнем углу, редактируем что и как отображать.
Ну ты в курсе.
И смотри видео уроки. Что для VB что для C# дизайнер одн и тот же.

ЗЫ начни по новой лучше.

Это сообщение отредактировал(а) thomas - 28.7.2007, 01:06


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
W1zArD
Дата 28.7.2007, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: нет
Всего: 3



честно говоря не очень понял... =)  smile 
мож кто еще поможет? smile 
PM   Вверх
mr.DUDA
Дата 28.7.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Если условие такое, что
Цитата(W1zArD @  27.7.2007,  10:15 Найти цитируемый пост)
имеется некая программа, хранящая в бд(access)


тогда
Цитата(W1zArD @  27.7.2007,  10:15 Найти цитируемый пост)
можно ли обойтись без sql?

Нельзя, конечно если вы не собираетесь грузить все данные таблиц и перебирать строки в цикле smile 


--------------------
user posted image
PM MAIL WWW   Вверх
W1zArD
  Дата 28.7.2007, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: нет
Всего: 3



Код изменил =/

Код

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            OleDbConnection con = new OleDbConnection("Provider = microsoft.jet.oledb.4.0; data source = base.mdb");
            con.Open();

            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM city", con);
            da.InsertCommand = new OleDbCommand(textBox3.Text, con);//"SELECT city.title, Country.Id AS Country_Id FROM Country INNER JOIN city ON Country.Id = city.country;"
            da.InsertCommand.CommandType = CommandType.Text;
            da.InsertCommand.ExecuteNonQuery();
            da.Fill(baseDataSet, "city");
            foreach (DataRow dr in baseDataSet.Tables["City"].Rows)
            {
                listBox1.Items.Add(dr["title"]);
            }
}


запрос выглядит так:
Код

SELECT city.title, Country.Id AS Country_Id
FROM Country INNER JOIN city ON Country.Id=city.country;


ничего не получается =(  smile  smile  smile 
плачу =( т.к. очень срочно нужно...

вроде бы такая простая задача... но нимагу и все =((((

помогите прошу вас...
PM   Вверх
thomas
Дата 28.7.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



W1zArD, 
Код

SELECT city.title
FROM Country INNER JOIN city ON Country.Id = city.country
WHERE Country.title=[?];
 самый простой запрос с параметром, подставляешь название страны и получаешь города.
Код

String sql = "SELECT city.title
FROM Country INNER JOIN city ON Country.Id = city.country
WHERE Country.title= " + comboBox1.SelectedItem.ToString() // ТВОЯ СТРАНА!!!!
OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
da.Fill(baseDataSet, "city");
foreach (DataRow dr in baseDataSet.Tables["City"].Rows)
            {
                listBox1.Items.Add(dr["title"]);
            }

Выполни этот запрос, засунь полученные города в табл в ДС и заполни listBox.

PS
Код

da.InsertCommand = new OleDbCommand(textBox3.Text, con);//"SELECT city.title, Country.Id AS Country_Id FROM Country INNER JOIN city ON Country.Id = city.country;"
            da.InsertCommand.CommandType = CommandType.Text;
            da.InsertCommand.ExecuteNonQuery();
А это все зачем?
 

Это сообщение отредактировал(а) thomas - 28.7.2007, 17:29


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
W1zArD
Дата 28.7.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: нет
Всего: 3



thomas
вобщем я не знаю что делать...

пишет...
Отсутствует значение для одного или нескольких требуемых параметров.
и все (((
PM   Вверх
W1zArD
Дата 29.7.2007, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: нет
Всего: 3



СДелал )))

переменную необходимо заключать в одинарные кавычки =/
[censored 6]...
вот код:
Код

void ComboBox1SelectedIndexChanged(object sender, System.EventArgs e)
        {
         listBox1.Items.Clear();
            OleDbConnection con = new OleDbConnection("Provider = microsoft.jet.oledb.4.0; data source = base.mdb");
            con.Open();
            baseDataSet.Tables["city"].Rows.Clear();
            OleDbDataAdapter da = new OleDbDataAdapter(textBox3.Text+"'"+comboBox1.Text+"'", con);
            da.Fill(baseDataSet, "city");
            foreach (DataRow dr in baseDataSet.Tables["city"].Rows)
            {
                listBox1.Items.Add(dr["title"]);
            }
        }

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.