C как сохранять данные
Перейти к содержимому

C как сохранять данные

C как сохранять данные

Рассмотрим, как мы можем сохранять файлы, в частности, файлы изображений в базу данных. Для этого создадим новую базу данных и в ней новую таблицу Files с четырьмя столбцами:

Id — первичный ключ и идентификатор, имеет тип int)

FileName будет хранить имя файла и имеет тип nvarchar

Title будет хранить заголовок файла и также имеет тип nvarchar

ImageData будет содержать бинарные данные файла и имеет тип varbinary(MAX)

Для создания базы данных и таблицы для хранения файлов определим следующую программу:

Сохранение файлов

Определим код, в котором будут загружаться данные в таблицу:

После выполнения этой программы в базе данных появится соответствующая запись:

Сохранение изображений в базе данных MS SQL Server в C# и .NET

Хотя в данном случае загружается изображение, но это частный случай, в принципе можно использовать и другие типы файлов.

Извлечение файлов из базы данных

Теперь произведем обратную операцию — получим файл из БД. Вначале определим класс файла, который упростит работу с данными:

Затем в коде программы определим следующий метод:

В этом методе с помощью SqlDataReader мы получаем значения из БД и по ним создаем объект Image, который потом добавляется в список. И в конце смотрим, если в списке есть элементы, то берем первый элемент и сохраняем его на локальный компьютер. И после сохранения в папке нашей программы появится загруженный из базы данных файл.

Пошаговое руководство. Сохранение данных в транзакции

В этом пошаговом руководстве показано, как сохранить данные в транзакции с помощью System.Transactions пространства имен. В этом пошаговом руководстве вы создадите приложение Windows Forms. Мастер настройки источника данных используется для создания набора данных для двух таблиц в образце базы данных Northwind. Вы добавите элементы управления, привязанные к данным, в форму Windows, и измените код кнопки сохранения BindingNavigator, чтобы обновить базу данных внутри TransactionScope.

Предварительные требования

В этом пошаговом руководстве используются SQL Server Express LocalDB и пример базы данных Northwind.

Если у вас нет SQL Server Express LocalDB, установите его на странице скачивания SQL Server Express или с помощью Visual Studio Installer. В Visual Studio Installer sql Server Express LocalDB можно установить как часть рабочей нагрузки разработки классических приложений .NET или как отдельный компонент.

Установите образец базы данных Northwind, выполнив следующие действия.

В Visual Studio откройте окно обозревателя объектов SQL Server . (Обозреватель объектов SQL Server устанавливается как часть рабочей нагрузки хранилища данных и обработки в Visual Studio Installer.) Разверните узел SQL Server . Щелкните правой кнопкой мыши экземпляр LocalDB и выберите «Создать запрос«.

Откроется окно редактора запросов.

Скопируйте скрипт Transact-SQL Northwind в буфер обмена. Этот скрипт T-SQL создает базу данных Northwind с нуля и заполняет ее данными.

Вставьте скрипт T-SQL в редактор запросов и нажмите кнопку «Выполнить «.

Через некоторое время запрос завершится и база данных Northwind будет создана.

Создание приложения Windows Forms

Первым шагом является создание приложения Windows Forms.

В Visual Studio в меню Файл выберите пункты Создать>Проект.

Разверните visual C# или Visual Basic на панели слева, а затем выберите «Рабочий стол Windows«.

В средней области выберите тип проекта приложения Windows Forms .

Назовите проект SavingDataInATransactionWalkthrough и нажмите кнопку «ОК«.

Создается проект SavingDataInATransactionWalkthrough, который добавляется в Обозреватель решений.

Создание источника данных базы данных

На этом шаге мастер настройки источника данных используется для создания источника данных на Customers основе таблиц и Orders таблиц в образце базы данных Northwind.

Чтобы открыть окно «Источники данных «, в меню «Данные » выберите «Показать источники данных«.

В окне «Источники данных » выберите «Добавить новый источник данных «, чтобы запустить мастер настройки источника данных.

На экране «Выбор типа источника данных » выберите «База данных» и нажмите кнопку «Далее«.

На экране «Выбор подключения к данным » выполните одно из следующих действий.

Если подключение к учебной базе данных Northwind доступно в раскрывающемся списке, то выберите его.

Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение и создайте подключение к базе данных «Борей».

Если для базы данных требуется пароль, выберите параметр для включения конфиденциальных данных и нажмите кнопку «Далее«.

На экране «Сохранить строку подключения» на экране файла конфигурации приложения нажмите кнопку «Далее«.

На экране «Выбор объектов базы данных » разверните узел «Таблицы «.

Customers Выберите и Orders таблицы, а затем нажмите кнопку «Готово«.

Объект NorthwindDataSet добавляется в проект, и таблицы Customers и Orders отображаются в окне Источники данных.

Добавление элементов управления на форму

Вы можете создавать элементы управления с привязкой к данным с помощью перетаскивания элементов из окна Источники данных на форму.

В окне «Источники данных » разверните узел Customers .

Перетащите главный узел Customers из окна Источники данных на форму Form1.

На форме появляется элемент DataGridView и панель инструментов (BindingNavigator) для перемещения по записям. NorthwindDataSet, CustomersTableAdapter BindingSourceи BindingNavigator отображается в области компонентов.

Перетащите связанный узел Orders (не основной узел Orders , но связанный узел дочерней таблицы под столбцом Факс ) в форму под Элементом CustomersDataGridView.

На форме появляется DataGridView. Объект OrdersTableAdapter и BindingSource отображается в области компонентов.

Добавление ссылки на сборку System.Transactions

Транзакции используют пространство имен System.Transactions. Ссылка проекта на сборку system.transactions не добавляется по умолчанию, поэтому вам нужно добавить ее вручную.

Порядок добавления ссылки на DLL-файл System.Transactions

В меню Проект выберите пункт Добавить ссылку.

Выберите System.Transactions (на вкладке .NET ) и нажмите кнопку «ОК«.

Ссылка на System.Transactions добавляется в проект.

Изменение кода на кнопке SaveItem bindingNavigator

Для первой таблицы, отброшенной на форму, код добавляется по умолчанию к click событию кнопки «Сохранить» в .BindingNavigator Для обновления дополнительных таблиц вам необходимо добавить такой код вручную. В этом пошаговом руководстве выполняется рефакторинг существующего кода сохранения из обработчика событий нажатия кнопки «Сохранить». Мы также создадим еще несколько методов для предоставления конкретных функций обновления в зависимости от того, нужно ли добавить или удалить строку.

Изменение автоматически сформированного кода сохранения

Нажмите кнопку «Сохранить » в CustomersBindingNavigator (кнопка со значком диска floppy).

Замените метод CustomersBindingNavigatorSaveItem_Click следующим кодом:

При согласовании изменений связанных данных применяется следующий порядок.

Удаление дочерних записей. (В этом случае удалите записи из Orders таблицы.)

Удаление родительских записей. (В этом случае удалите записи из Customers таблицы.)

Вставка родительских записей. (В этом случае вставьте записи в таблицу Customers .)

Вставка дочерних записей. (В этом случае вставьте записи в таблицу Orders .)

как сохранять данные в C#

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

user avatar

user avatar

Для начала можно попробовать сериализацию в XML. Привёл полный пример кода.

user avatar

Существует много способов, но на мой взгляд самый простой — используя EntityFramework и подход Code First.

CodeFirst удобен тем, что вам ненужно самостоятельно создавать базу, она будет создана автоматически при первом входе в программу и дальше вы будете с ней работать.

Создаёте класс для работы с бюджетом. Все методы и необходимые поля (количество средств, операция со средствами, дата операции, описание)

Создаёте проект, подключаете EF через nuget package.

Далее создаём класс для работы с бюджетом. На моём примере вышло что-то такое

Далее для работы с БД необходимо создать класс-контекст, почитать об этом можно например вот тут: https://msdn.microsoft.com/ru-ru/library/system.data.entity.dbcontext(v=vs.113).aspx

У меня получилось нечто такое:

Далее необходимо зайти в App.config найти там закрывающий тег

и добавить после него строку подключения с именем «DbConnection»:

Собственно это всё что нужно для сохранения данных в БД. Осталось использовать полученный механизм в программе:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *