Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Как сохранить данные в базу данных (по хитрому)?


Автор: ancheville 5.1.2011, 15:48
Здравствуйте. 
Подскажите пожалуйста как сделать следующее:

Исходные данные: 
- есть база данных из 10 столбцов (условно) (количество строк не важно)
- есть DataGridView, который отображает 5 столбцов (условно) из этой базы данных
- есть источник данных (10 TextBox'ов)

Что нужно:
- при нажатии кнопки 1 необходимо сохранять содержимое всех 10 TextBox'ов в базу данных (через DataGridView, как мне кажется невозможно, т.к. не хватает столбцов)
- при нажатии кнопки 2 необходимо считать информацию из базы данных во все 10 10 TextBox'ов.

Автор: jonie 5.1.2011, 16:28
Цитата


- при нажатии кнопки 1 необходимо сохранять содержимое всех 10 TextBox'ов в базу данных (через DataGridView, как мне кажется невозможно, т.к. не хватает столбцов)
ошибаетесь. DGV на самом деле работает с DataView, а не напрямик с DataTable-ом. Поэтому, в частности, он может отображать другое количество колонок.

В общем смотрите аттачмент.

Автор: ancheville 7.1.2011, 22:57
Цитата(jonie @ 5.1.2011,  16:28)
Цитата


- при нажатии кнопки 1 необходимо сохранять содержимое всех 10 TextBox'ов в базу данных (через DataGridView, как мне кажется невозможно, т.к. не хватает столбцов)
ошибаетесь. DGV на самом деле работает с DataView, а не напрямик с DataTable-ом. Поэтому, в частности, он может отображать другое количество колонок.

В общем смотрите аттачмент.


По-моему в аттачменте приведен пример на отличном от VB.NET языке. Я ничего не понял, но благодарю за участие...

Автор: jonie 7.1.2011, 23:00
ancheville, а где, позвольте спросить, у вас написано "vb.net only" ?

Автор: ancheville 7.1.2011, 23:03
Цитата(jonie @ 7.1.2011,  23:00)
ancheville, а где, позвольте спросить, у вас написано "vb.net only" ?

Наверное нигде. Я совсем мало разбираюсь в программировании и в этом форуме. Извините. 
Может вы подскажите мне как сделать то, что написано выше в VB.NET?

Автор: Yuretzzo 12.1.2011, 18:17
Цитата(jonie @ 5.1.2011,  16:28)
Цитата


- при нажатии кнопки 1 необходимо сохранять содержимое всех 10 TextBox'ов в базу данных (через DataGridView, как мне кажется невозможно, т.к. не хватает столбцов)
ошибаетесь. DGV на самом деле работает с DataView, а не напрямик с DataTable-ом. Поэтому, в частности, он может отображать другое количество колонок.

В общем смотрите аттачмент.

У меня такая же проблема. Не работает сохранение в БД...курсовой скоро сдавать...пишу на C# в Visual Studio 2008. БД создавалась в SQL Managerment Studio 2005. Танцы с бубном продолжаются уже 2 недели. Скачал ваш аттачмент...и был удивлен...КАК оно работает ? У меня БД на тот же самый код            
Код

this.Validate();
this.tab1BindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.database1DataSet);
 
никак не реагирует. Может какие особые настройки нужно указывать при созаднии БД ? Или по-особому её подключать к проекту ? Объясните пожалуйста.

Автор: jonie 12.1.2011, 20:53
Yuretzzo, надо проверить стоят ли Update комманды у TableAdapterManager-а (в редакторе в свойствах TableAdapterManager) для начала.
Затем убедиться что вы при каждом запуске не перетираете старую базу (например если вы добавили access базу то она по умолчанию будет каждый раз копироваться поверх уже существующей). Проверять в свойствах файла - Copy : none выставить.

Затем рассказать что у вас воообще за база, может это и не локальная (как у меня в примере) ....

Автор: Yuretzzo 13.1.2011, 12:05
Цитата(jonie @ 12.1.2011,  20:53)
Yuretzzo, надо проверить стоят ли Update комманды у TableAdapterManager-а (в редакторе в свойствах TableAdapterManager) для начала.
Затем убедиться что вы при каждом запуске не перетираете старую базу (например если вы добавили access базу то она по умолчанию будет каждый раз копироваться поверх уже существующей). Проверять в свойствах файла - Copy : none выставить.

Затем рассказать что у вас воообще за база, может это и не локальная (как у меня в примере) ....

1. Со словом "Update" в свойствах TableAdapterManager-а нашел только это:
user posted image
2. Тоже самое и со свойствами файла:
user posted image

3. База локальная.  smile 
Ожидаемого результата это не принесло...увы, но придется воспользоваться старой доброй xml-сериализацией.  

Автор: jonie 13.1.2011, 15:14
Цитата


1. Со словом "Update" в свойствах TableAdapterManager-а нашел только это:
не у TableAdapterManager, а у TableAdapter-а в редакторе DataSet-а . Я опечатался.

Автор: Yuretzzo 15.1.2011, 20:09
Цитата(jonie @ 13.1.2011,  15:14)
Цитата


1. Со словом "Update" в свойствах TableAdapterManager-а нашел только это:
не у TableAdapterManager, а у TableAdapter-а в редакторе DataSet-а . Я опечатался.

Редактировал..результат тот же  smile 
Тем не менее, курсовой сдан и защищен на 9. Сохранение сделал через xml-сериализацю List <T>...это конечно не правильно, но работает.
Но осталось огромное желание разобраться с сохранением данных в БД. Можете расписать по пунктам от начала до конца как вы создавали и настраивали БД ?

Автор: jonie 16.1.2011, 14:58
ну нате видео.

Автор: Yuretzzo 30.1.2011, 18:39
спасибо, разобрался вроде

Автор: anion 17.3.2015, 20:39
Цитата(jonie @  12.1.2011,  20:53 Найти цитируемый пост)
Затем убедиться что вы при каждом запуске не перетираете старую базу (например если вы добавили access базу то она по умолчанию будет каждый раз копироваться поверх уже существующей). Проверять в свойствах файла - Copy : none выставить.


Спасибо помогло..2 дня бился. Оказалось при запуске копируется база в папку проекта Debug..соответственно берется туда из корня проекта. Выстави свойство "копировать если новее" smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)