Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/76: Рейтинг темы: голосов - 76, средняя оценка - 4.64
2 / 2 / 0
Регистрация: 14.10.2011
Сообщений: 89

Создать Windows Forms с использованием бд

06.04.2014, 22:29. Показов 15853. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Необходимо реализовать приложение, которое будет хранить некую информацию в бд, и отображать данные из бд в формы. Где администратору к примеру, можно будет в формах добавлять, обновлять, изменять данные. А также делать отчеты на основе этих данных и запросы.
Гуглил, но ничего подобного не нашел.
Если какие нибудь мануалы, где пошагово решается данная задача?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2014, 22:29
Ответы с готовыми решениями:

Создать программу на Windows Forms с использованием базы данных
Прошу прощения, если эта тема уже обсуждалась, но я уже просто не знаю что делать:( Помогите пожалуйста, работаю на Visual Studio 2008...

Сделать текстовый редактор с использованием Windows Forms
Сделать текстовый редактор с использованием диалоговых компонентов. Текстовый редактор должен иметь возможность изменения цвета и шрифта...

Проблема с использованием контролов из Windows Forms в WPF
Привет всем. Есть большой проект с массой пользовательских форм и контролов, написанных в Windows Forms. Теперь переходим на wpf и все...

3
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
06.04.2014, 22:46
Наверное, нужно быть эгоистом, что искать точно такую же задачу. В чем вопрос то? Если вы создали вопрос в разделе ADO.NET, то наверняка догадываетесь, что эта технология создана для работы с базами данных. Значит ищите статьи как работать с базами данных через ADO.NET. Если вопросы с GUI то в .net существуют Windows Forms и WPF, менее известные варианты тут не рассматриваю.
Отчеты могут быть в раздном виде, это какие-то бланки, сводные таблицы, графики. Для генерации бланков можно генерировать Word документы через Interop либо же через OpenXML, аналогично табличые данные можно вывести в Excel. Для отображения графиков в .net существует элемент управления Chart.
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
07.04.2014, 10:37
https://www.cyberforum.ru/ado-... 82279.html

Добавлено через 44 секунды
ознакомьтесь сначала с предложенной темой, когда возникнут более конкретные вопросы - обращайтесь
0
Заблокирован
07.04.2014, 19:18
0. Создание базы данных проще делать вручную, таблицы можно и программно
Простой вариант
SQL
1
2
3
CREATE TABLE client ( id_client  INT(10), name_client  VARCHAR(255), DATE VARCHAR(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE product ( id_product  INT(10), name_product  VARCHAR(255), price VARCHAR(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE orders (id_order  INT(10), id_client VARCHAR(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Сложнее
SQL
1
2
3
4
5
6
7
CREATE TABLE Товары ( КодТовара  INT(10), Марка  VARCHAR(255), ОписаниеТовара  VARCHAR(255), КодТипа  INT(10), КодПоставщика  INT(10), СерийныйНомер  VARCHAR(255), НаСкладе  INT(10), Заказано  INT(10), Цена  VARCHAR(255), МинимальныйЗапас  INT(10), ПоставкиПрекращены  TINYINT, ВремяЗадержки VARCHAR(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE Заказы ( КодЗаказа  INT(10), КодКлиента  INT(10), КодСотрудника  INT(10), ДатаРазмещения  VARCHAR(255), НомерЗаказа  VARCHAR(255), ТребуемаяДата  VARCHAR(255), ОжидаемаяДата  VARCHAR(255), НазваниеПолучателя  VARCHAR(255), АдресПолучателя  VARCHAR(255), ГородПолучателя  VARCHAR(255), РегионПолучателя  VARCHAR(255), РегионПолучателя1  VARCHAR(255), ИндексПолучателя  VARCHAR(255), СтранаПолучателя  VARCHAR(255), ТелефонПолучателя  VARCHAR(255), ДатаИсполнения  VARCHAR(255), КодМетодаДоставки  INT(10), СтоимостьДоставки  VARCHAR(255), НалоговаяСтавка  DOUBLE(5,3), КодСпискаРассылки  INT(10), КодТовара VARCHAR(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE Оплата ( КодОплаты  INT(10), КодКлиента  INT(10), КодЗаказа  INT(10), КодЗаказа1  INT(10), КодРезервирования  INT(10), КодУчастника  INT(10), КодРегистрации  INT(10), КодПроекта  INT(10), СуммаОплаты  VARCHAR(255), ДатаОплаты  VARCHAR(255), МетодОплаты  VARCHAR(255), НомерЧека  VARCHAR(255), ТипКарточки  VARCHAR(255), НомерКарточки  VARCHAR(255), ИмяВладельцаКарточки  VARCHAR(255), СрокДействияКарточки  VARCHAR(255), КодКарточки  VARCHAR(255), УсловияОплаты  VARCHAR(255), КодМетодаОплаты  INT(10), Заметки VARCHAR(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE СведенияОЗзаказе (КодЗаказанного  INT(10), КодЗаказа  INT(10), КодТовара  INT(10), ДатаПродажи  VARCHAR(255), Количество  DOUBLE(5,3), Цена  VARCHAR(255), Скидка  DOUBLE(5,3), РозничнаяЦена  VARCHAR(255), Налог  VARCHAR(255), СуммаПоСтроке VARCHAR(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
1. Прежде всего к любой базе данных надо подключиться. Для этого нужны две вещи - пространство имен (для вашего случая using System.Data.OleDb и объект DbConnection (для Access это OleDbConnection, для других баз данных - другие варианты), а для некоторых операций и некоторых видов баз данных надо еще подключать какую-то дополнительную библиотеку. Для создания новой базы данных Access, например, нужен ADOX.
2. Если вы работаете с базой данных напрямую - да, вы создаете объект DbCommand (для Access - OleDbCommand) и через него передаете SQL-запрос. Но на самом деле это только видимость)))) .NET переводит его на другой язык, поэтому синтаксис SQL-запроса в Студии несколько отличается от обычного. Чтобы это показать, я выбрала пример из моей практики с созданием таблицы, где одно из полей называется value. Студия не пропускала такое имя, и его пришлось экранировать не одинарными кавычками и не кавычками с клавиши ё, а именно квадратными скобками. Кавычки не компилировались.
3. Если ж вы работаете не с самой базой данных, а с ее копией в виде датасета, то SQL-запросы не нужны (кроме одного - SELECT что надо из какой нужно таблицы), а нужно использовать OleDbDataAdapter - посредник между базой данных и датасетом -и его методы, а также методы класса Dataset. Наиболее важные см. выше - это Fill, заполнение датасета из базы данных, и Upgrade, перенос измененных данных из датасета в базу. Но могут понадобиться и другие методы, например, InsertCommаnd.
4. Можно еще создавать объект класса CommandBuilder, тогда он сам создает нужные запросы, но я этот способ не люблю - он работает только с маленькими учебными базами данных, а с настоящими большими вылетает ошибка.

1. Чтобы создать базу данных Access, используя C#, надо подключить библиотеку ADOX.
Проект или Свойства проекта - добавить новую ссылку - COM - выбрать Microsoft ADO Ext.6.0 for DDL...
у меня есть только Microsoft ADO Ext.2.8 for DDL... выбрала ее, работает.
2. Добавить
C#
1
2
3
using ADOX;
//для любой работы с базами данных Access
using System.Data.OleDb;
3. Нужна кнопка на форме и ее обработчик
C#
1
2
3
4
5
                 //Создать БД Access
 
Catalog database = new CatalogClass();
 
database.Create("provider=microsoft.jet.oledb.4.0; data source=" + System.Windows.Forms.Application.StartupPath + "\\dbTest.mdb");
- создаст БД dbTest.mdb в той же папке, где экзешник

Чтобы создать таблицу и прочее, надо
1. к той БД подключиться. Про пространство имен см. выше. Теперь надо объявить вот такие два объекта
OleDbConnection dbc
OleDbDataAdapter da
- как можно глобальнее. Лучше прям в классе формы. Вот тут
C#
1
2
3
4
5
6
public partial class Form1 : Form
    {
        OleDbConnection dbc;
        OleDbDataAdapter da;
        public Form1()
...
2. А далее потребуются как минимум кнопка для создания таблицы, лэйбл и openFileDialog на форме, и к кнопке обработчик:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
label1.Text = Convert.ToString(openFileDialog1.FileName);
dbc = new OleDbConnection("data source=" + label1.Text + ";provider=microsoft.jet.oledb.4.0;");
 
dbc.Open();
 
OleDbCommand cmdCreateTable1 = new OleDbCommand("CREATE TABLE product ( id_product  INT(10), name_product  VARCHAR(255), price VARCHAR(255) )ENGINE=InnoDB DEFAULT CHARSET=utf8;", dbc); 
 
//посылаем запрос
try
{
cmdCreateTable1.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
MessageBox.Show("Таблица product НЕ создана");
return;
}
}
- создаст таблицу facts (id_p INT, id_t INT, [value] INT)

Чтобы в ту таблицу вставлять записи, можно делать так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void button1_Click_1(object sender, EventArgs e)
        {
            // Открываем подключение.
            using (var connection = new OleDbConnection("Provider=" + "Microsoft.Jet.OLEDB.4.0;Data Source=D:\\zayavka.mdb"))
            {
                connection.Open();
                using (OleDbCommand command = connection.CreateCommand())
                {
                    command.CommandText = "INSERT INTO product (name_product, price) values ('" + textBox1.Text + "', 666);";
                    int numberOfUpdatedItems = command.ExecuteNonQuery();
                }
                connection.Close();
            }
 
        }
а можно ее содержимое сперва перелить в Датасет и вывести в датагридвью. То и другое надо сперва бросить на форму...
и понадобится еще одна кнопка, а к ней обработчик:
C#
1
2
3
4
5
6
7
8
 
dbc = new OleDbConnection("data source=" + Application.StartupPath +
                "\\db_test.mdb" + ";provider=microsoft.jet.oledb.4.0;");
dbc.Open();
da = new OleDbDataAdapter("SELECT * FROM table1", dbc);
OleDbCommandBuilder dcb = new OleDbCommandBuilder(da);
da.Fill(dataSet1);
dataGridView1.DataSource=dataSet1.Tables[0]; // а из dataSet открываем в dataGridView
а когда все ввели и нажали еще одну кнопку, то надо сделать в ее обработчике так
C#
1
2
   da.Update(dataSet1);
            dbc.Close();
Вот в dataGridView ваши записи и будут считываться и будут там видны
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2014, 19:18
Помогаю со студенческими работами здесь

Разработка приложение Windows Forms с использованием MySql
Уважаемые форумчане, предстоит очень большая работа по созданию приложения Windows Forms и с использованием MySql, может быть кто то в...

Создать консоль из Windows Forms
Я хочу создать консольную программу. Мне нужно чтобы он был из Windows Forms, так как мне нужно чтобы я мог переключить на режим в трей и...

Как создать презентацию в Windows Forms?
Нужно зделать так чтобы изображение появлялись в определенным порядке ичерез некоторое время

Создать проводник через Windows Forms
Здравствуйте. В учебном заведении на экзамен, срок которого - неделя, мне выпало "написать проводник".) В целом, должно выйти...

Windows Forms создать пошаговый интерфейс
Пишу сюда потому, что получается одно дерьмо.. В пошаговом интерфейсе есть 3-4 формы , скажем 3 шага и далее форма которая показывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru