Загрузка данных
using System;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace AddressBook1
{
public partial class Form1 : Form
{
// ВНИМАНИЕ: замените '1234' на ваш реальный пароль от MySQL, если он другой
string connStr = "server=127.0.0.1;user=root;database=address_book;password=1234;AllowPublicKeyRetrieval=True;";
public Form1()
{
InitializeComponent();
LoadData(); // Загружаем контакты при запуске
}
// Метод для загрузки данных из БД в таблицу
private void LoadData()
{
try
{
using (MySqlConnection conn = new MySqlConnection(connStr))
{
conn.Open();
string sql = "SELECT id AS 'ID', name AS 'Имя', phone AS 'Телефон', email AS 'Email' FROM contacts";
MySqlDataAdapter adapter = new MySqlDataAdapter(sql, conn);
DataTable table = new DataTable();
adapter.Fill(table);
dataGridView1.DataSource = table;
}
}
catch (Exception ex)
{
MessageBox.Show("Ошибка загрузки: " + ex.Message);
}
}
// Кнопка "Добавить"
private void button1_Click(object sender, EventArgs e)
{
Form inputForm = new Form();
inputForm.Text = "Новый контакт";
inputForm.Size = new System.Drawing.Size(300, 220);
Label lblName = new Label() { Text = "Имя:", Location = new System.Drawing.Point(10, 20), AutoSize = true };
TextBox txtName = new TextBox() { Location = new System.Drawing.Point(10, 45), Width = 250 };
Label lblPhone = new Label() { Text = "Телефон:", Location = new System.Drawing.Point(10, 75), AutoSize = true };
TextBox txtPhone = new TextBox() { Location = new System.Drawing.Point(10, 100), Width = 250 };
Label lblEmail = new Label() { Text = "Email:", Location = new System.Drawing.Point(10, 130), AutoSize = true };
TextBox txtEmail = new TextBox() { Location = new System.Drawing.Point(10, 155), Width = 250 };
Button btnSave = new Button() { Text = "Сохранить", Location = new System.Drawing.Point(100, 185) };
btnSave.Click += (s, ev) =>
{
try
{
using (MySqlConnection conn = new MySqlConnection(connStr))
{
conn.Open();
string sql = "INSERT INTO contacts (name, phone, email) VALUES (@name, @phone, @email)";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@name", txtName.Text);
cmd.Parameters.AddWithValue("@phone", txtPhone.Text);
cmd.Parameters.AddWithValue("@email", txtEmail.Text);
cmd.ExecuteNonQuery();
}
inputForm.Close();
LoadData();
}
catch (Exception ex)
{
MessageBox.Show("Ошибка добавления: " + ex.Message);
}
};
inputForm.Controls.Add(lblName);
inputForm.Controls.Add(txtName);
inputForm.Controls.Add(lblPhone);
inputForm.Controls.Add(txtPhone);
inputForm.Controls.Add(lblEmail);
inputForm.Controls.Add(txtEmail);
inputForm.Controls.Add(btnSave);
inputForm.ShowDialog();
}
// Кнопка "Удалить"
private void button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count == 0)
{
MessageBox.Show("Выберите строку для удаления!");
return;
}
int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells["ID"].Value);
if (MessageBox.Show("Удалить контакт с ID " + id + "?", "Подтверждение", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
try
{
using (MySqlConnection conn = new MySqlConnection(connStr))
{
conn.Open();
string sql = "DELETE FROM contacts WHERE id = @id";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@id", id);
cmd.ExecuteNonQuery();
}
LoadData();
}
catch (Exception ex)
{
MessageBox.Show("Ошибка удаления: " + ex.Message);
}
}
}
// Кнопка "Обновить"
private void button3_Click(object sender, EventArgs e)
{
LoadData();
}
// Кнопка "Выход"
private void button4_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}