Другие языки программирования и технологии
Обмен данными между datagrid viewи базой данных
Я новичок в программировании. Работаю в среде visual studio 2010, язык C#. Имеется две формы, на первой датагридвью и рядом кнопка Добавить. При нажатии на кнопку добавить открывается вторая форма, на которой расположены поля ввода. После заполнения полей и нажатия кнопки ОК данные из полей ввода должны сохраняться в Базе данных. Я создал эти формы, добавил дата сет, датагрид и создал локальную базу данных урезанную - .SDF Далее необходимо организовать обмен данными между датагрид вью и базой данных. Я в этой области опыта не имею, прошу подробно объяснить или ссылку на хорошие уроки кинуть.
sdf - это SQL Server. Глючная такая серверная БД.
Объяснять и правда долго, но вот тут пример на VB.NET есть, ну и пояснение что как делать, собственно я его и писал
cyberforum.ru/post6217092.html
Почему на VB.NET, а не на C# - это к админам форума, пусть создадут такой же топик-FAQ по C# и закрепят в топе, тогда буду исходники на C# писать.
А так, вот конвертер. http://converter.telerik.com/
Объяснять и правда долго, но вот тут пример на VB.NET есть, ну и пояснение что как делать, собственно я его и писал
cyberforum.ru/post6217092.html
Почему на VB.NET, а не на C# - это к админам форума, пусть создадут такой же топик-FAQ по C# и закрепят в топе, тогда буду исходники на C# писать.
А так, вот конвертер. http://converter.telerik.com/
Это долго объяснять. И я работаю не с SDF. учитесь работать с гуглом. Задайте в поиск SDF и C# и их же с DataGridView
С Access .mdb как-то так:
С#
using System;
using System.Windows.Forms;
using System.Data;
using System.Drawing;
using System.Diagnostics;
// Пространство имен для работы с базами данных Access
using System.Data.OleDb;
class DataInOutGrid : Form
{
OleDbDataAdapter dataAdapter;
DataGridView dataGridView;
public DataInOutGrid()
{
//Изменяем размеры формы
this.Width = 450;
this.Height = 400;
// Добавляем элемент DataGridView на форму
dataGridView = new DataGridView();
dataGridView.Width = 414;
dataGridView.Height = 250;
dataGridView.Location = new Point(10, 10);
dataGridView.AutoResizeColumns();
this.Controls.Add(dataGridView);
// Добавляем командную кнопку
Button buttonSave = new Button();
buttonSave.Location = new Point(100, 320);
buttonSave.Width = 220;
buttonSave.Text = "Сохранить изменения в базе данных! ";
buttonSave.Click += new System.EventHandler(ButtonSave_Click);
buttonSave.Parent = this;
// Формируем запрос к базе данных –
string sql = "SELECT * FROM PHONES";
string connectionString;
// DataTable сохраняет данные в памяти как таблицу
DataTable dataTable = new DataTable();
//Связывание с базой данных Access 2003 – *.mdb
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source= ../../../databases/Phones.mdb";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
OleDbCommand OleDbCommand = new OleDbCommand(sql, connection);
dataAdapter = new OleDbDataAdapter(OleDbCommand);
//Создаем построитель команд
//Для адаптера становится доступной команда Update
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
// Данные из адаптера поступают в DataTable
dataAdapter.Fill(dataTable);
// Связываем данные с элементом DataGridView
dataGridView.DataSource = dataTable;
// Очистка
connection.Close();
}
static void Main()
{
// Создаем и запускаем форму
Application.Run(new DataInOutGrid());
}
void ButtonSave_Click(object sender, System.EventArgs args)
{
try
{
dataAdapter.Update((DataTable)dataGridView.DataSource);
MessageBox.Show("Изменения в базе данных выполнены! ",
"Уведомление о результатах", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception)
{
MessageBox.Show("Изменения в базе данных выполнить не удалось! ",
"Уведомление о результатах", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
С Access .mdb как-то так:
С#
using System;
using System.Windows.Forms;
using System.Data;
using System.Drawing;
using System.Diagnostics;
// Пространство имен для работы с базами данных Access
using System.Data.OleDb;
class DataInOutGrid : Form
{
OleDbDataAdapter dataAdapter;
DataGridView dataGridView;
public DataInOutGrid()
{
//Изменяем размеры формы
this.Width = 450;
this.Height = 400;
// Добавляем элемент DataGridView на форму
dataGridView = new DataGridView();
dataGridView.Width = 414;
dataGridView.Height = 250;
dataGridView.Location = new Point(10, 10);
dataGridView.AutoResizeColumns();
this.Controls.Add(dataGridView);
// Добавляем командную кнопку
Button buttonSave = new Button();
buttonSave.Location = new Point(100, 320);
buttonSave.Width = 220;
buttonSave.Text = "Сохранить изменения в базе данных! ";
buttonSave.Click += new System.EventHandler(ButtonSave_Click);
buttonSave.Parent = this;
// Формируем запрос к базе данных –
string sql = "SELECT * FROM PHONES";
string connectionString;
// DataTable сохраняет данные в памяти как таблицу
DataTable dataTable = new DataTable();
//Связывание с базой данных Access 2003 – *.mdb
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source= ../../../databases/Phones.mdb";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
OleDbCommand OleDbCommand = new OleDbCommand(sql, connection);
dataAdapter = new OleDbDataAdapter(OleDbCommand);
//Создаем построитель команд
//Для адаптера становится доступной команда Update
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
// Данные из адаптера поступают в DataTable
dataAdapter.Fill(dataTable);
// Связываем данные с элементом DataGridView
dataGridView.DataSource = dataTable;
// Очистка
connection.Close();
}
static void Main()
{
// Создаем и запускаем форму
Application.Run(new DataInOutGrid());
}
void ButtonSave_Click(object sender, System.EventArgs args)
{
try
{
dataAdapter.Update((DataTable)dataGridView.DataSource);
MessageBox.Show("Изменения в базе данных выполнены! ",
"Уведомление о результатах", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception)
{
MessageBox.Show("Изменения в базе данных выполнить не удалось! ",
"Уведомление о результатах", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
ну так поищите "работа с БД в С#"
Похожие вопросы
- обмен данными C# и надежность жесткого диска
- Обмен данными между формами C#
- С# обмен данными между классами, как это осуществить?
- работа с базой данных рабочих
- Необходимо подготовить приложение, работающее с базой данных - какие рекомендации?
- ООП это когда данные управляют кодом а функциональное когда код данными?
- в файле"bigdump.php" нужно указать настройки для соединения с базой данных и кодировку. что имеется ввиду?
- Помогите с базой данных Delphi+Access
- В чем разница между сервером и базой данных (MySQL)? И что такое API? Клиент-серверное приложение.
- Насколько безопасно хранение данных на флешке?? Я храню все резервные данные с моего ноута на флешке 32 гб!