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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изменять базу данных через DatagridView на c#, изменение базы данных через datagridview 
:(
    Опции темы
joler95
Дата 26.1.2011, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите пожалуйста по данному коду:

Код

public Form1()
        {
            InitializeComponent();
        }

        OleDbDataAdapter adap = null;
        DataSet ds = new DataSet();

        private void Form1_Load(object sender, EventArgs e)
        {
            adap = new OleDbDataAdapter("Select * from Alex_Table", new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"схема данных.mdb"));
            OleDbCommandBuilder bulder = new OleDbCommandBuilder(adap);
            adap.UpdateCommand = bulder.GetUpdateCommand();
            adap.InsertCommand = bulder.GetInsertCommand();
            adap.DeleteCommand = bulder.GetDeleteCommand();
            adap.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }
        private void button1_Click_1(object sender, EventArgs e)
        {
            adap.Update(ds.Tables[0]);
        }



После  его выполнения пытаюсь по нажатию кнопки в datagridview пытаюсь встваить новую строку
Код

        private void button9_Click(object sender, EventArgs e)
        {
            dataGrid1.Rows.Insert(0, 1);
           
        }

но вылетает ошибка

Подскажите как можно в datagridview вствить новую строку, чтоб затем заполнить ее данными??
PM MAIL   Вверх
joler95
Дата 26.1.2011, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Кому интересно Добавить надо в Table[0]

Это сообщение отредактировал(а) joler95 - 27.1.2011, 10:40
PM MAIL   Вверх
jonie
Дата 27.1.2011, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



joler95, я даже скажу что вы подходите к коню не с той стороны. Надо подходить со стороны ДАННЫХ , а не их ОТОБРАЖЕНИЯ. Дело в том, что данные (в данном случае DataView (или как-то так)) , реализуют INotifyPropertyChanged интфрейс, и вид (в данном случае грид) подписывается на изменения данных. Соответственно оперировать всегда (так принято, черт возьми)  с данными, а не с видом (!).   И в общем жто всегда надо учитывать..


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
jonkaspar2008
Дата 16.3.2012, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



запускаю код  от  "Выхухоль" работает без ошибок
но в БД (в самом файле access) никаких изменений не происходит

в чем может быть причина?
PM MAIL   Вверх
wesadex
Дата 19.11.2014, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А можно и я пять копеек попрошу. Измаялся гуглить уже и читать форумы.

C#, DataGridView, MSSQL 2005

Вот так заполняю ДатаГридВью:

Код

SqlCommand cmd = null;
            
            Log("Начинается загрузка данных... Пожалуйста подождите!");
            
            string q = "SELECT TOP 400 dbo.art.cod_shop, dbo.art.cod_good, dbo.goods.name_good, dbo.depart.cod_depart, dbo.depart.name_depart, ";
            q += "dbo.[group].cod_group, dbo.[group].name_group, dbo.sub_group.cod_sgroup, dbo.sub_group.name_sgroup, ";
            q += "dbo.goods.cod_assort, dbo.art.margin, dbo.art.happy_hour, dbo.art.block_discount, dbo.art.block_chng_price, ";
            q += "dbo.art.zak_price, dbo.art.retail_price FROM dbo.art LEFT OUTER JOIN dbo.goods ON dbo.goods.cod_good = dbo.art.cod_good ";
            q += "LEFT OUTER JOIN dbo.depart ON dbo.depart.cod_depart = dbo.goods.cod_depart LEFT OUTER JOIN dbo.[group] ON dbo.[group].cod_group = dbo.goods.cod_group ";
            q += "LEFT OUTER JOIN dbo.sub_group ON dbo.sub_group.cod_sgroup = dbo.goods.cod_sgroup ORDER BY dbo.art.cod_good, dbo.art.cod_shop";

            cmd = new SqlCommand(q, slib.conn);

            da = new SqlDataAdapter(cmd);
            cmdBuilder = new SqlCommandBuilder(da);

            da.UpdateCommand = cmdBuilder.GetUpdateCommand(true);

            da.Fill(this.ds);
            dt = ds.Tables[0];
            dgMain.DataSource = dt;
            cmd.Dispose();
            


Вот кнопочка "Сохранить":
Код

        private void btnSave_Click(object sender, EventArgs e)
        {
            da.Update(ds.Tables[0]);
        } 


При попытке запустить, запускается, но вылетает на вот этой строчке: da.UpdateCommand = cmdBuilder.GetUpdateCommand(true); (без параметров тожде пробовал)
Ошибка такая: Dynamic SQL generation is not supported against multiple base tables.

Насколько я понимаю, из-за джойнов код не может автоматически сгенерировать UPDATE запрос из моего не самого простого SELECT'a.

Как с этим бороться?

p.s. DataAdapter, DataSet и DataTable объявлены глобально.
PM MAIL   Вверх
danila777
Дата 22.5.2015, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте. Помогите, пожалуйста, разобраться с программой - данные не сохраняются в б.д. после нажатия на кнопку. Б.д. в access. Все примеры, которые здесь приводили пробовал - не работает. в архиве проект и б.д. посмотрите, пожалуйста.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  55555.ZIP 50,72 Kb
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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