Приветствую всех, сегодня напишем простенькое приложения для работы с БД MS Access сможет обновлять, удалять и вставлять данные.
Шаг 1:
Откройте MS Access, нажмите на пустую базу данных рабочего стола . Дайте базе данных имя «dbSchool.accdb«. а затем нажмите кнопку Создать .
Шаг 2:
Теперь создайте таблицу в базе данных, вы можете назвать таблицу как хотите, здесь я назвал ее “Student” . Существует три столбца в таблице ID, FirstName и LastName, как показано ниже,
Шаг 3:
Теперь откройте Visual Studio, запустите новое приложение Windows Form и дайте любое имя, которое вы хотите.
Шаг 4:
Теперь перетащите файл базы данных из документов в папку каталога проекта. Так что бы она находилась рядом с нашей будущей программой, для удобства работы.
Шаг 5:
Дизайн Формы
Шаг 6:
Установим свойство как на скрине в DataGridView
Шаг 7:
Напишите пространство имен для подключения, как показано ниже.
1 |
using System.Data.OleDb; |
Шаг 8:
Определите глобальные переменные.
1 2 3 4 |
OleDbConnection con; OleDbDataAdapter da; OleDbCommand cmd; DataSet ds; |
Шаг 9:
создайте метод для получения списка учащихся.
1 2 3 4 5 6 7 8 9 10 |
void GetStudent() { con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=dbSchool.accdb"); da = new OleDbDataAdapter("SELECT *FROM Student", con); ds = new DataSet(); con.Open(); da.Fill(ds, "Student"); dataGridView1.DataSource = ds.Tables["Student"]; con.Close(); } |
Шаг 10:
Создайте исходный код для кнопки вставки данных
1 2 3 4 5 6 7 8 9 10 11 |
private void btnInsert_Click(object sender, EventArgs e)//INSERT BUTTON { string query = "Insert into Student (FirstName,LastName) values (@fName,@lName)"; cmd = new OleDbCommand(query, con); cmd.Parameters.AddWithValue("@fName", txtFirstName.Text); cmd.Parameters.AddWithValue("@lName", txtLastName.Text); con.Open(); cmd.ExecuteNonQuery(); con.Close(); GetStudent(); } |
Шаг 11:
Создайте исходный код для кнопки Удалить
1 2 3 4 5 6 7 8 9 10 |
private void btnDelete_Click(object sender, EventArgs e)//DELETE BUTTON { string query = "Delete From Student Where Id=@id"; cmd = new OleDbCommand(query, con); cmd.Parameters.AddWithValue("@id", dataGridView1.CurrentRow.Cells[0].Value); con.Open(); cmd.ExecuteNonQuery(); con.Close(); GetStudent(); } |
Шаг 12:
Создайте исходный код для кнопки Обновить
1 2 3 4 5 6 7 8 9 10 11 12 |
private void btnUpdate_Click(object sender, EventArgs e)//UPDATE BUTTON { string query = "Update Student Set FirstName=@fName,LastName=@lName Where Id=@id"; cmd = new OleDbCommand(query, con); cmd.Parameters.AddWithValue("@ad", txtFirstName.Text); cmd.Parameters.AddWithValue("@soyad", txtLastName.Text); cmd.Parameters.AddWithValue("@id", Convert.ToInt32(txtId.Text)); con.Open(); cmd.ExecuteNonQuery(); con.Close(); GetStudent(); } |
Шаг 13:
Создайте исходный код для события datagridview_cellEnter
1 2 3 4 5 6 |
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { txtId.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString(); txtFirstName.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString(); txtLastName.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString(); } |
Шаг 14:
создайте исходный код для события Form_Load
1 2 3 4 |
private void Form1_Load(object sender, EventArgs e) { GetStudent(); } |
На этом все, полный текст исходного кода ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.OleDb; namespace Пример_приложения_для_работы_с_Access_базой { public partial class Form1 : Form //nookery.ru { OleDbConnection con; OleDbDataAdapter da; OleDbCommand cmd; DataSet ds; public Form1() { InitializeComponent(); } void GetStudent() { //либо укажите полный путь до БД //con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Projects\Пример приложения для работы с Access базой\Пример приложения для работы с Access базой\bin\Debug\dbSchool.accdb"); con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=dbSchool.accdb"); da = new OleDbDataAdapter("SELECT *FROM Student", con); ds = new DataSet(); con.Open(); da.Fill(ds, "Student"); dataGridView1.DataSource = ds.Tables["Student"]; con.Close(); } private void Form1_Load(object sender, EventArgs e) { GetStudent(); } private void btnInsert_Click(object sender, EventArgs e)//INSERT BUTTON { string query = "Insert into Student (FirstName,LastName) values (@fName,@lName)"; cmd = new OleDbCommand(query, con); cmd.Parameters.AddWithValue("@fName", txtFirstName.Text); cmd.Parameters.AddWithValue("@lName", txtLastName.Text); con.Open(); cmd.ExecuteNonQuery(); con.Close(); GetStudent(); } private void btnDelete_Click(object sender, EventArgs e)//DELETE BUTTON { string query = "Delete From Student Where Id=@id"; cmd = new OleDbCommand(query, con); cmd.Parameters.AddWithValue("@id", dataGridView1.CurrentRow.Cells[0].Value); con.Open(); cmd.ExecuteNonQuery(); con.Close(); GetStudent(); } private void btnUpdate_Click(object sender, EventArgs e)//UPDATE BUTTON { string query = "Update Student Set FirstName=@fName,LastName=@lName Where Id=@id"; cmd = new OleDbCommand(query, con); cmd.Parameters.AddWithValue("@ad", txtFirstName.Text); cmd.Parameters.AddWithValue("@soyad", txtLastName.Text); cmd.Parameters.AddWithValue("@id", Convert.ToInt32(txtId.Text)); con.Open(); cmd.ExecuteNonQuery(); con.Close(); GetStudent(); } private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { txtId.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString(); txtFirstName.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString(); txtLastName.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString(); } } } |
1
Таким образом мы разработали программу с минимальным функционалом.
Внимание если у вас возникает ошибка:System.InvalidOperationException: «Поставщик «Microsoft.ACE.OLEDB.12.0″ не зарегистрирован на локальном компьютере.»
Вам надо изменить целевую сборку проекта на x64, если вы не знаете как это сделать, прочитайте тут.
А обязательно должно всё быть на английском и таблицы и сам файл?
Таблицы нет, сам фаил желательно.
можно пожалуйста исходник?
Можно пожалуйста исходник?
Послу публикации демонстрационная программа была удалена. Но не вижу проблемы самостоятельно воссоздать ее, поместив на форму 3 текстовых поля 3 кнопки и 1 DataGridView, скопировать код из статьи и обработать события.
flvby [eqkj
Что?)
Здравствуйте. Можете ли вы ответить на мой вопрос? У меня создана БД Рекламной кампании, в ней таблица с списком заказов(*ID_Заказа, ID_Товара, ID_Организации и тд). Хочу обработать событие нажатие кнопки. Пользователь заполняет форму и при нажатии в MessageBox выводится ID записанного Заказа(ну например «Заказ N находится на стадии обработки»).
Привет, а в чем вопрос? Ход мысли у тебя верный, делай выборку с базы данных формируй строку из нее и выводи в сообщении.
ниче не поняно, нормально надо объяснять, твари блять