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

Поиск:

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


Новичок



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

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



Здравствуйте.
Скажите пожалуйства, а как мне отобразить данные из 4-5 связанных таблиц (из БД Access) в одном Datagridview или двух Datagridview , затем чтобы можно их (данные) было  редактировать (в Datagridview) и результаты редактирования обязательно записывались в базу данных Access. лучше поподробнее, совсем недавно юзаю С#.
PM MAIL ICQ Jabber   Вверх
LOPUH
Дата 13.3.2012, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Растение
*


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

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



Ну,судя по всему, с такой штукой как SQL  вы незнакомы, иначе подобный вопрос вряд ли возник. SQL- язык запросов, при помощи которого вы сможете извлечь необходимые данные из одной или нескольких таблиц, сформировать при этом соответствующее представление данных, отредактировать  имеющиеся данные в таблицах, а также создать либо удалить  сами таблицы.
То есть.если вы хотите писать приложения, работающие с данными, SQL необходим для изучения.
PM MAIL   Вверх
Anddros
Дата 13.3.2012, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



SQL запрос я смогу сформировать, а куда его прописать в windows приложении к Базе данных. ? как настроить datagridview для редактирования?

PM MAIL ICQ Jabber   Вверх
kin
Дата 13.3.2012, 12:38 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Блин, чудны, господи, дети твои!... Anddros, по всей видимости, вы думаете, что для того чтобы долететь до Марса, достаточно знать, где у Шаттла находиться педаль газа... 
А такой мысли, как обратиться к господам google.ru, yandex.ru, rambler.ru и попросить у них материал на тему "Программирование БД на C#" у Вас, часом, никогда не возникала???

Это сообщение отредактировал(а) kin - 13.3.2012, 12:40
PM MAIL   Вверх
Anddros
Дата 13.3.2012, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Обращался уже.
Но всё равно спасибо за совет.
PM MAIL ICQ Jabber   Вверх
fedyunina
Дата 13.3.2012, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот тут все очень доступно и по порядку smile http://sernam.ru/book_cbd.php
PM MAIL Skype   Вверх
Anddros
Дата 13.3.2012, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, обязательно посмотрю.   smile 
PM MAIL ICQ Jabber   Вверх
metis
Дата 13.3.2012, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Загрузить данные в Datagridview можно,на пример, таким образом
Код

            string table = "table";
            string dbase = "database_name.mdb";
            string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            OleDbConnection connection = new OleDbConnection(conStr);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            connection.Open();
            OleDbCommand command = new OleDbCommand("SELECT * FROM " + table, connection);
            command.ExecuteNonQuery();
            connection.Close();
            adapter.SelectCommand = command;
            DataSet dataSet = new DataSet();
            adapter.Fill(dataSet);
            dataGridView1.DataSource = dataSet.Tables[0];
            adapter.Update(dataSet);

А вобще тема уже не раз обсуждаль на форуме, на пример тут
PM MAIL   Вверх
Anddros
Дата 13.3.2012, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



>А вобще тема уже не раз обсуждаль на форуме, на пример тут

Эту тему я внимательно просмотрел ранее. Но тамошний пример мне не подходит. В присоединённом там файле ( Project_Test.rar) , рассматривается одна таблица БД Access (мне нужно 4). к тому же код выдаётся ошибка при попытке редактирования. 

>вот тут все очень доступно и по порядку  http://sernam.ru/book_cbd.php
Работа с базами данных на языке C#. Технология ADO.NET: Учебное пособие / сост. О. Н. Евсеева, А. Б. Шамшев
А здесь рассмаривается отображение двух таблиц в режиме master-detail. Так что только две таблицы.

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


Шустрый
*


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

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



Опишите ситуацию более подробно, какие таблицы, по каким полям связаны?
Какую задачу решаете?
PM MAIL   Вверх
Anddros
Дата 14.3.2012, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Имеются таблицы базы данных Access: Book, Izdatelstva, Zhanri, Prodazhi. 
Book является дочерней таблицей для Zhanri и Izdatelstva. и является родительской для таблицы Prodazhi. 
У табл. Zhanri ключевое поле ID_zhanr , у таблицы Izdatelstva ключевое поле ID_izdat. 
Таблица Book связана с ними по этими полям. 
Таблица Book имеет ключевое поле Id_knigi (яляется родительской для табл Prodazhi) и связано по этому полю с дочерней таблицей Prodazhi.
т.е. связи между родительскими и дочерними : один ко многим.

Далее необходимо использовать класс Datagridview, чтобы можно было  вывести содержимое таблиц и  предусмотрено редактирование этих связанных таблиц и результаты редактирования обязательно записывались в базу данных Access.
PM MAIL ICQ Jabber   Вверх
metis
Дата 14.3.2012, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так, давайте по порядку.  
Для начала нужно загрузить данные в Datagridview, я так понимаю у вас это получилось, т.к.

Цитата(Anddros @ 13.3.2012,  11:56)
SQL запрос я смогу сформировать, а куда его прописать в windows приложении к Базе данных. ? как настроить datagridview для редактирования?

а куда его прописать в windows приложении я уже писал
Покажите, каким образом загружаете данные в Datagridview?


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


Новичок



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

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



<Покажите, каким образом загружаете данные в Datagridview?

Я смогу загрузить данные в 4 Datagridview. По одной таблице в каждый Datagridview.  Я смогу это сделать с помощью мастера.
PM MAIL ICQ Jabber   Вверх
metis
Дата 14.3.2012, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


Новичок



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

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



SQL запрос для каждого DatagrigView думаю сделать не составит труда.

Добавлено через 5 минут и 25 секунд
В прилагаемом Вами коде запрос осуществляется к одной таблице. А тогда в моём случае как нужно сделать?

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


Шустрый
*


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

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



Можно так попробовать
Код

            string dbase = "dbname";
            string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            DataSet dataSet = new DataSet();
            dataSet.Tables.Add("table1");
            dataSet.Tables.Add("table2");
            OleDbConnection connection = new OleDbConnection(conStr);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            connection.Open();
           
            OleDbCommand command1 = new OleDbCommand("SELECT * FROM   table1", connection);
            command1.ExecuteNonQuery();
            adapter.SelectCommand = command1;
            adapter.Fill(dataSet.Tables[0]);
            dataGridView1.DataSource = dataSet.Tables[0];

            OleDbCommand command2 = new OleDbCommand("SELECT * FROM   table2", connection);
            command2.ExecuteNonQuery();
            connection.Close();
            adapter.SelectCommand = command2;
            adapter.Fill(dataSet.Tables[1]);
            dataGridView2.DataSource = dataSet.Tables[1];

            adapter.Update(dataSet.Tables[0]);
            adapter.Update(dataSet.Tables[1]);
            connection.Close();

Я написал для 2х таблиц, думаю сделать тоже самое для 4х, будет понятно.
Можно заполнять dataGridView в контексте не одного соедения, как я сделал в этом примере, а создавать новое подключение для каждого селекта.


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


Новичок



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

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



Спасибо. обязательно попробую.
PM MAIL ICQ Jabber   Вверх
Anddros
Дата 15.3.2012, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Данные из 2-х таблиц получилось увидеть на форме. Не с первого раза конечно. Пока не поместил пространстов имен using System.Data.OleDb; и не закинул файл БД в папку Bin\Debug  smile  . Думаю , тут необходимо будет сделать отображение master-detail для наглядности. 
А для редактирования тогда как быть? Что можете посоветовать? 

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


Шустрый
*


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

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



Цитата(Anddros @ 15.3.2012,  19:34)
... А для редактирования тогда как быть? Что можете посоветовать?

Читать MSDN,по ссылке которую я давал ранее (Практическое руководство. Обновление записей в базе данных). Там описано достаточно просто, подробно и с примерами.  Если что то не получится пишите - поможем-подскажем.
PM MAIL   Вверх
Anddros
Дата 15.3.2012, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



System.Data.SqlClient.SqlConnection sqlConnection1 = 
    new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING ");

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'";
cmd.Connection = sqlConnection1;

sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();



Вот это вобще не понятно. просидел 4 часа и бес толку. 
Вычитал , что 
SqlConnection, SqlCommand, SqlDataAdapter соответствует
OleDbConnection,  OleDbCommand, OleDbDataAdapter. 
Сколько не менял, ничего не получилось. А System.Data.SqlClient это вообще наверное тоже относится к MS SQL Server.
Здесь нужно наверное как то производить подключение к Dataset и Dataadapter.

Прошу прощения за свою неразумность.
PM MAIL ICQ Jabber   Вверх
metis
Дата 16.3.2012, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

SqlConnection, SqlCommand, SqlDataAdapter соответствует
OleDbConnection,  OleDbCommand, OleDbDataAdapter. 

Все верно.  Если хотите выполнить хранимую процедуру (на пример),которая уже существует в БД, к вашему коду нужно добавить SqlDataAdapter

            
Код

            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();
            SqlCommand cmd = new SqlCommand("StoredProcedure_Name", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet dataSet = new DataSet();
            da.Fill(dataSet, tableName);
            conn.Close();


Если вы хотите формировать SQL запрос в клиенте советую почитать про SqlCommandBuilder.

P.S. А при чем тут вобще работа с БД SQL сервера, вы же кажется с БД Acces работаете?
PM MAIL   Вверх
Anddros
Дата 16.3.2012, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да . верно , что с Access. Но в примере , который в MSDN, ссылку на который Вы мне скинули , речь идёт о взаимодействии именно с SQL сервером. Вот у меня и возникли трудности по поводу того, как удалять из таблицы строки и как обновлять базу данных.

Добавлено через 2 минуты и 47 секунд
Поэтому я и не смог разобраться на основе того примера со своим случаем .

Добавлено через 7 минут и 16 секунд
А хранимые процедуры , к сожалению, БД Access не поддерживаются вроде. 
PM MAIL ICQ Jabber   Вверх
metis
Дата 16.3.2012, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

connection1.Open();
OleDbCommand command1 = new OleDbCommand("DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern", connection1);
command1.ExecuteNonQuery();



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


Новичок



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

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



Поэтому, всё же интересует вопрос как реализовать функции редактирования в СУБД Access с помощью C#.

Добавлено через 10 минут и 17 секунд
DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern", connection1

А что значит цифра пять? это удаление 5ой строки?

В моём случае значит должно быть 

DELETE Book WHERE ID_knigi  AND Nazv_knigi AND Avtor  AND ID_zhanr  AND ID_izdat AND Cena = Bookshop,  connection1
PM MAIL ICQ Jabber   Вверх
metis
Дата 16.3.2012, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нужно вызвать метод Update  у датаадаптера
Код

dataAdapter.Update((DataTable)dataGridView.DataSource); 

или
Код

dataAdapter.Update(dataSet_Name); 


Это сообщение отредактировал(а) metis - 16.3.2012, 19:38
PM MAIL   Вверх
Anddros
Дата 16.3.2012, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



>А что значит цифра пять? 
Так что она тут значит в этом запросе?

А метод Update это тоже относится к удалению строки или для обновления таблицы? 
PM MAIL ICQ Jabber   Вверх
metis
Дата 16.3.2012, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Что значит цифра 5 это вы должны знать, я просто скопировал ваз запрос и вставил его в свой пример.
Цитата

...
Метод TableAdapter.Update(DataTable)
Пытается сохранить все изменения DataTable в базе данных. (Это включает удаление всех строк, удаленных из таблицы, добавление вставленных в таблицу строк и обновление всех строк в таблице, которые были изменены.) 
...

Это все описано в руководстве по обновлению данных в БД, ссылку на которое я уже давал.
Читайте, вникайте, пробуйте...


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


Новичок



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

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



<Читайте, вникайте, пробуйте...

Надеюсь мне хватит времени ко времени "Ч".

Добавлено через 7 минут и 55 секунд
<Это все описано в руководстве по обновлению данных в БД, ссылку на которое я уже давал.

К сожалению, там описано касаемо MS SQL сервер.

Добавлено через 11 минут и 8 секунд
<DELETE Region WHERE RegionID = 5 

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


Шустрый
*


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

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



Касаемо MS SQL сервера, в руководстве описан метод обновления данных с помощью командных объектов, остальные примеры описаны вполне понятно и могут подойти для решения вашей задачи, если вы собираетесь изменять данные путем редактирования информации в datagridview.
Цитата

Сколько не менял, ничего не получилось

Код в "студию", что именно не получается?Какая ошибка?

А еще мне интересно, вы говорите про удаление и редактирование данных, а процедура добавления записи в БД у вас уже написана?

Это сообщение отредактировал(а) metis - 18.3.2012, 19:17
PM MAIL   Вверх
Anddros
Дата 19.3.2012, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Процедура удаления тоже не написана. Данные из БД вывел в datagridview и вот застрял на удалении. дальше не касался. Добавления  записей конечно тоже нет. Код есть тот , что Вы скинули остальные свои собственные разработки уже удалил, т.к. там бред.


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


Новичок



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

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



Наверное нужно заново производить подключение к БД  чтобы удалить и отдельно чтобы добавить данные. и по новому подкючать dataadapter и datatable 
PM MAIL ICQ Jabber   Вверх
metis
Дата 19.3.2012, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Начинать, по крайней мере я так считаю, нужно все же с добавления данных в БД.
На пример, надо загрузить, обновить, удалить данные из таблицы ФИО, состоящей из 2 полей (столбцов) id числовое поле (автоинкремент) и fio текстовое поле.
Я бы сделал следующим образом:
1. Создал форму и разместил бы на ней несколько элементов управления (текстбокс и кнопка)
2. В текстбокс пишем фио и нажимаем кнопку сохранить
            
Код

            string table = "metable";
            string dbase = "mydb.mdb";
            string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            OleDbConnection connection = new OleDbConnection(conStr);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            try
            {
                connection.Open();
                OleDbCommand command = new OleDbCommand("insert into " + table + "(fio)   values ('" +textBox1.Text + "')", connection);
                command.ExecuteNonQuery();
                connection.Close();
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message.ToString()); }



Для начала попробуйте сделать добавление данных, обновление и удаление выполняется аналогично, тут главное правильно написать SQL  запрос.



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


Новичок



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

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



А если меня интересует именно DataGridView. т.е я вношу данные в DataGridView они становится видны в гриде ну и естественно в БД.

Добавлено через 1 минуту и 35 секунд
Получается такой же код:
 string table = "metable";
            string dbase = "mydb.mdb";
            string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            OleDbConnection connection = new OleDbConnection(conStr);
            OleDbDataAdapter adapter = new OleDbDataAdapter();

Необходим и при добавлении и при удалении данных?

Добавлено через 5 минут и 54 секунды
или текстбокс  соединять с ячейкам DatagridView ?
PM MAIL ICQ Jabber   Вверх
metis
Дата 19.3.2012, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А если вы создаете строку в датагридвью, то нужно воспользоваться методом апдейт TableAdapter-а

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


Новичок



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

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



Вот это да. опять што но новенькое

Добавлено через 8 минут и 59 секунд
TableAdapter.Update(DataSet) 
Это вот это?

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


Новичок



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

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



или так dataAdapter.Update((DataTable)dataGridView1.DataSource);
PM MAIL ICQ Jabber   Вверх
metis
Дата 19.3.2012, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можете выложить ваш проект?
PM MAIL   Вверх
Anddros
Дата 19.3.2012, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;


namespace Bookshop
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
       
            string dbase = "Bookshop_old.mdb";
            string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            DataSet dataSet = new DataSet();
            dataSet.Tables.Add("Zhanri");
            dataSet.Tables.Add("Book");
            OleDbConnection connection = new OleDbConnection(conStr);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            connection.Open();
           
            OleDbCommand command1 = new OleDbCommand("SELECT * FROM   Zhanri", connection);
            command1.ExecuteNonQuery();
            adapter.SelectCommand = command1;
            adapter.Fill(dataSet.Tables[0]);
            dataGridView1.DataSource = dataSet.Tables[0];

            OleDbCommand command2 = new OleDbCommand("SELECT * FROM   Book", connection);
            command2.ExecuteNonQuery();
            connection.Close();
            adapter.SelectCommand = command2;
            adapter.Fill(dataSet.Tables[1]);
            dataGridView2.DataSource = dataSet.Tables[1];

            adapter.Update(dataSet.Tables[0]);
            adapter.Update(dataSet.Tables[1]);
            connection.Close();
          
        }

        private void button1_Click(object sender, EventArgs e) // довабление строки в datagridview
        {
            string table = "Zhanri";
            string dbase = "Bookshop_old.mdb";
            string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            OleDbConnection connection = new OleDbConnection(conStr);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            try
            {
                connection.Open();
                
ну а тут хочу вставить код для добавления в datagrid строк

                ZhanriTableAdapter.Update(BookshopDataSet);
                
command.ExecuteNonQuery();
                connection.Close();
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message.ToString()); }
        }
        }
    }


   Я основываюсь на Вашем коде. 
PM MAIL ICQ Jabber   Вверх
metis
Дата 20.3.2012, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Попробуйте такой вариант
Код

        private OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
        private BindingSource bindingSource = new BindingSource();

        private void Form1_Load(object sender, System.EventArgs e)
        {
            dataGridView1.DataSource = bindingSource;
            GetData("select * from mytab");
        }


        //Обновляем записи в БД
        private void updateButton_Click(object sender, System.EventArgs e)
        {
             dataAdapter.Update((DataTable)bindingSource.DataSource);
        }
        //Процедура загрузки данных в dataGridView
        private void GetData(string selectCommand)
        {
            string dbase = "mydb.mdb";
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            dataAdapter = new OleDbDataAdapter(selectCommand, connectionString);
            OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
            DataTable table = new DataTable();
            dataAdapter.Fill(table);
            bindingSource.DataSource = table;
         }


Это сообщение отредактировал(а) metis - 20.3.2012, 20:07
PM MAIL   Вверх
Anddros
Дата 20.3.2012, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Данные при редактирование обновились в в Базе Данных. а удаление не работает. 
На удаление надо что то другое?
PM MAIL ICQ Jabber   Вверх
Anddros
Дата 20.3.2012, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А почему когда я хочу тоже самое сделать для отображения второй таблицы в Datagridview2
то выскакивает ошибка
Error    1    Type 'Bookshop.Form1' already defines a member called 'GetData' with the same parameter types    d:\Bookshop\Bookshop\Form1.cs    54    21    Bookshop

а я всего лишь добавил ниже dataGridView1.DataSource = bindingSource;
            GetData("select * from Zhanri");

Добавлено через 1 минуту и 35 секунд
т.е. добавил dataGridView2.DataSource = bindingSource;
            GetData("select * from Zhanri");

ну и такой же код на обработчик событий по нажатию кнопки Button2
PM MAIL ICQ Jabber   Вверх
Anddros
Дата 20.3.2012, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хотя на удаление тоже работает и на добавление.
Просто там не удалялось  потому что не выделил всю строку. и ошибка выскакивала потому что таблицы же связанные.

А как тогда отобразить другие таблицы в остальных datagridview (datagridview2, datagridview3....)
все тот же вопрос с GetData.

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


Шустрый
*


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

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



Проще всего создать для каждой таблицы BindingSource и OleDbDataAdapter и отдельную процедуру получения данных.
PM MAIL   Вверх
Anddros
Дата 21.3.2012, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А покажи пожалуйста как это сделать , у меня так и не получилось. 
Вроде  понятно, а на самом деле не получается сколько я не пытаюсь. Мне край надо. 
Я занимаюсь совсем недавно C#.
PM MAIL ICQ Jabber   Вверх
metis
Дата 21.3.2012, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну если совсем по простому, то как то так:

Код

        private OleDbDataAdapter dataAdapter1 = new OleDbDataAdapter();
        private BindingSource bindingSource1 = new BindingSource();

        private OleDbDataAdapter dataAdapter2 = new OleDbDataAdapter();
        private BindingSource bindingSource2 = new BindingSource();
       // я делаю 2 у вас будет 4

Чтобы датагридвью заполнить 
Код

            dataGridView1.DataSource = bindingSource1;
            GetData1("select * from mytab1");
           //Для второй dataGridView
            dataGridView2.DataSource = bindingSource2;
            GetData2("select * from mytab2");

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

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

И на конец процедура получения данных
Код

           //GetDir1
            string dbase = "mydb.mdb";
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            dataAdapter1 = new OleDbDataAdapter(selectCommand, connectionString);
            OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter1);
            DataTable table = new DataTable();
            dataAdapter1.Fill(table);
            bindingSource1.DataSource = table;
            //GetDir2
            string dbase = "mydb.mdb";
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbase;
            dataAdapter2 = new OleDbDataAdapter(selectCommand, connectionString);
            OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter2);
            DataTable table = new DataTable();
            dataAdapter2.Fill(table);
            bindingSource2.DataSource = table;



Думаю принцип понятен. 


PM MAIL   Вверх
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   Вверх
Anddros
Дата 22.3.2012, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Теперь ругается на dataAdapter в обработчике кода кнопки

Добавлено через 2 минуты и 35 секунд
The name 'dataAdapter' does not exist in the current context.

Добавлено через 4 минуты и 20 секунд
Как то получается , что dataAdapter не видно в обработчике кода кнопи Button 

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


Шустрый
*


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

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



Ну так и dataAdapter  нужно так же создавать как и датасет
Код

 private OleDbDataAdapter dataAdapter = new OleDbDataAdapter();

 И так же нужно убрать создание адаптера в процедуре заполнения

Это сообщение отредактировал(а) metis - 22.3.2012, 19:53
PM MAIL   Вверх
Anddros
Дата 22.3.2012, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Неа . не хочет обновлять.  и всё тут. ошибка выскакивает.

Добавлено через 1 минуту и 24 секунды
Тут же ещё dataAdapter2 создаётся.

Добавлено через 3 минуты и 48 секунд
А без него. т.е. именно dataAdapter2 программа ругается

Добавлено через 8 минут и 14 секунд
{"Update requires a valid UpdateCommand when passed DataRow collection with modified rows."}

Вот что пишет при обновлении теперь

Добавлено через 10 минут и 17 секунд
Я уже и так сделал

Код

private OleDbDataAdapter dataAdapter2 = new OleDbDataAdapter();
 
PM MAIL ICQ Jabber   Вверх
metis
Дата 25.3.2012, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



нужно еще bindingsource добавить

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


Новичок



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

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



Все это я уже делал. 
PM MAIL ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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