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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Acces + C# 
:(
    Опции темы
Anddros
Дата 21.3.2012, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Жаль что Вы всё время исчезаете и только лишь ненадолго появляетесь вечером.  smile

Добавлено через 11 минут и 17 секунд
Почему то ругается

Error    1    The type 'Bookshop.Form1' already contains a definition for 'bindingSource1'    d:\Bookshop\Bookshop\Form1.Designer.cs    100    52    Bookshop

PM MAIL ICQ Jabber   Вверх
Anddros
Дата 21.3.2012, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да и на GetData1 и GetData2  ругается

Добавлено через 4 минуты и 44 секунды
Еще вот пишет - The name Getdata1 does not exist in the current  context
PM MAIL ICQ Jabber   Вверх
Anddros
Дата 21.3.2012, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ой . прошу прощения. вроде получилось  smile

Добавлено через 4 минуты и 8 секунд
Теперь для лучшей наглядности, мне кажется, нужно сделать , чтобы при выборе родительской таблице в дочерней таблице появлялись записи касаемо этой строки. т.е. это так называемый master-detail

Добавлено через 14 минут и 19 секунд
Вы случаем не знаете как это можно сделать для двух таблиц. Думаю это последнее что мне нужно.
PM MAIL ICQ Jabber   Вверх
Anddros
Дата 21.3.2012, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это наверное здесь не получится, потому что нету объекта DataSet . Ведь в объекте DataSet должны вроде храниться две таблицы
PM MAIL ICQ Jabber   Вверх
metis
Дата 21.3.2012, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если я правильно понял, то нужно, чтобы н/р при выборе жанра в dataGridView1, в dataGridView2 загружались все книги этого, выбранного жанра?
Если так то нужно просто передать процедуре заполнения другой запрос, который будет осуществлять выборку из нужной таблицы с указанным условием.

PM MAIL   Вверх
Anddros
Дата 21.3.2012, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



<Если я правильно понял, то нужно, чтобы н/р при выборе жанра в dataGridView1, в dataGridView2 загружались все книги этого, выбранного жанра? 

Да . Вы правы. именно так.

Добавлено через 1 минуту и 21 секунду
< .....который будет осуществлять выборку из нужной таблицы с указанным условием.

Вот это Вы сказанули.

Добавлено через 3 минуты и 31 секунду
А  Вы случаем не знаете как это сделать? 
В книге я нашел подобный вариант, но мне там трудно разобраться. нашел вот тут4.4.3. Объект DataGridView

Добавлено через 4 минуты и 26 секунд
 smile 
PM MAIL ICQ Jabber   Вверх
metis
Дата 21.3.2012, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну во первых я не знаю какая у вас БД (какие таблицы по каким полям связаны),
а во вторых SQL запросы это вам в другую ветку форума.


PM MAIL   Вверх
Anddros
Дата 21.3.2012, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мдя. вот это да. что же делать, что же делать

Добавлено через 3 минуты и 25 секунд
Связаны то они по ключевому полю ID_zhanr. 
Но тут в таком случае, наверное, и весь код будет выглядеть по другому.
PM MAIL ICQ Jabber   Вверх
Anddros
Дата 21.3.2012, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как по Вашему такой вариант

            DataSet ds = new DataSet();
            ds.Tables.Add("Zhanri");
            ds.Tables.Add("Book");

            ds.Relations.Add("myRelation", ds.Tables["Zhanri"].Columns["ID_zhanr"], ds.Tables["Book"].Columns["ID_knigi"]);
            dataGridView1.DataSource = ds;
            dataGridView2.DataSource = ds;
            dataGridView1.DataMember = "Zhanri";
            dataGridView2.DataMember = "Zhanri.myRelation";


Правда у меня ошибку пишет {"'column' argument cannot be null.\r\nParameter name: column"}

на ds.Tables["Book"] ругается. код нашел на форуме.
PM MAIL ICQ Jabber   Вверх
Anddros
Дата 22.3.2012, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



metis, а Вы не подскажите как вот в этом коде сделать обновление datagridview1 и datagridview2. Этот код рабочий и вроде то что надо, в родительской таблице (datagridview1) отображаются данные из дочерней таблицы (datagridview2)

Код


        public Form1()
        {
            InitializeComponent();

            string commandText = "SELECT ID_zhanr, Zhanr FROM Zhanri";
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + @"C:\Bookshop_old.mdb";
            string commandText2 = "SELECT ID_zhanr, ID_knigi, Nazv_knigi, Avtor, ID_izdat, Cena " + "FROM Book";

            OleDbConnection conn = new OleDbConnection(connectionString);
            OleDbCommand myCommand = new OleDbCommand();
            myCommand.Connection = conn;
            myCommand.CommandText = commandText;

            OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
            dataAdapter.SelectCommand = myCommand;
            conn.Open();
            DataSet ds = new DataSet();
            dataAdapter.TableMappings.Add("Table", "Zhanri");

            dataAdapter.Fill(ds);
            OleDbCommand myCommand2 = new OleDbCommand();
            myCommand2.Connection = conn;
            myCommand2.CommandText = commandText2;
            OleDbDataAdapter dataAdapter2 = new OleDbDataAdapter();
            dataAdapter2.SelectCommand = myCommand2;
            dataAdapter2.TableMappings.Add("Table", "Book");

            dataAdapter2.Fill(ds);
            DataColumn dcTouristsID = ds.Tables["Zhanri"].Columns["ID_zhanr"];
            DataColumn dcInfoTouristsID = ds.Tables["Book"].Columns["ID_zhanr"];
            DataRelation dataRelation = new DataRelation("Дополнительная информация", dcTouristsID, dcInfoTouristsID);
            ds.Relations.Add(dataRelation);
            DataViewManager dsview = ds.DefaultViewManager;
            dataGridView1.DataSource = dsview;
            dataGridView1.DataMember = "Zhanri";
            dataGridView2.DataSource = dsview;
            dataGridView2.DataMember = "Zhanri.Дополнительная информация";
            conn.Close();

        }



Добавлено через 5 минут и 22 секунды
Ну то есть , Вы раньше писали


Чтобы изменения сохранить
Код


dataAdapter1.Update((DataTable)bindingSource1.DataSource);
         //Для второй dataGridView
         dataAdapter2.Update((DataTable)bindingSource2.DataSource);


А здесь тогда как по Вашему?
PM MAIL ICQ Jabber   Вверх
metis
Дата 22.3.2012, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так пробовали:
Код

dataAdapter1.Update((DataTable)ds.Tables["Zhanri"]);


PM MAIL   Вверх
Anddros
Дата 22.3.2012, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код


private void button1_Click_1(object sender, EventArgs e)
        {

            dataAdapter1.Update((DataTable)ds.Tables["Zhanri"]);    

        }

 

Не работает. пишет что  ds не существует .

Добавлено через 1 минуту и 11 секунд
Error    1    The name 'dataAdapter1' does not exist in the current context    d:\3\Bookshop_3\Form1.cs    67    13    Bookshop_3

Добавлено через 3 минуты и 36 секунд
Я уже тут долго сижу и ищу как можно обновить.  smile 
PM MAIL ICQ Jabber   Вверх
metis
Дата 22.3.2012, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так вы создавайте дата-адаптер и датасет так же как создавали BindingSource 
        
Код

private BindingSource bindingSource = new BindingSource();


PM MAIL   Вверх
Anddros
Дата 22.3.2012, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



<так вы создавайте дата-адаптер и датасет так же как создавали BindingSource 

А не сможете показать на моем примере?

Добавлено через 33 секунды
Я уже пробывал вчерашний Ваш код.

Добавлено через 1 минуту и 43 секунды
Ведь дата-адаптер и датасет уже созданы, а их еще раз получается нужно создавать.

Добавлено через 2 минуты и 23 секунды
т.е. я пробывал вчерашний код вставлять в этот. никак.
PM MAIL ICQ Jabber   Вверх
metis
Дата 22.3.2012, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

Ведь дата-адаптер и датасет уже созданы, а их еще раз получается нужно создавать.

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

 DataSet ds = new DataSet();

и добавить 
Код

private DataSet ds= new DataSet();

попробуйте сделать так.

Это сообщение отредактировал(а) metis - 22.3.2012, 19:33
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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