Код:
namespace DataBase
{
public partial class Form1 : Form
{
OleDbConnection connection;
DataTable dt1, dt2;
public Form1()
{
InitializeComponent();
dt1 = new DataTable();
dt2 = new DataTable();
connection = new OleDbConnection(GetConnectionString("Mouses.accdb"));
// Открытие соединения
connection.Open();
// Устанавливаем связи DataGridView c DataTable
dataGridView_Marka.DataSource = dt1;
dataGridView_Types.DataSource = dt2;
// Заполняем данными dt1
InitMarks();
InitGridView();
}
private void InitMarks()
{
OleDbCommand command1 = new OleDbCommand("SELECT * FROM marka", connection);
OleDbDataAdapter adapter1 = new OleDbDataAdapter(command1);
adapter1.Fill(dt1);
}
static private string GetConnectionString(string path)
{
return @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + path + ";";
}
private void InitGridView()
{
dataGridView_Marka.Columns["id"].Visible = false;
dataGridView_Marka.Columns["manufacturer"].HeaderText = "производитель";
dataGridView_Marka.Columns["manufacturer"].Width = 100;
dataGridView_Marka.Columns["marka"].HeaderText = "марка";
dataGridView_Marka.Columns["marka"].Width = 400;
dataGridView_Types.Columns["id"].Visible = false;
dataGridView_Types.Columns["id_groups"].Visible = false;
dataGridView_Types.Columns["types"].HeaderText = "тип";
dataGridView_Types.Columns["types"].Width = 100;
dataGridView_Types.Columns["wire"].HeaderText = "провод";
dataGridView_Types.Columns["wire"].Width = 100;
dataGridView_Types.Columns["cost"].HeaderText = "цена";
dataGridView_Types.Columns["cost"].Width = 100;
}
private int GetIdMarka()
{
return int.Parse(dataGridView_Marka.SelectedRows[0].Cells["id"].Value.ToString());
}
private int GetIdTypes()
{
return int.Parse(dataGridView_Types.SelectedRows[0].Cells["id"].Value.ToString());
}
private void RefreshTypes()
{
OleDbCommand command2 = new OleDbCommand("SELECT * FROM types WHERE id_groups = " + GetIdTypes(), connection);
OleDbDataAdapter adapter2 = new OleDbDataAdapter(command2);
dt2.Clear();
adapter2.Fill(dt2);
}
private void dataGridView_Marka_SelectionChanged(object sender, EventArgs e)
{
if (dataGridView_Marka.SelectedRows.Count <= 0) return;
RefreshTypes();
}
private void dataGridView_Students_SelectionChanged(object sender, EventArgs e)
{
if (dataGridView_Types.SelectedRows.Count <= 0) return;
DataGridViewRow row = dataGridView_Types.SelectedRows[0];
textBox_type.Text = row.Cells["types"].Value.ToString();
textBox_wire.Text = row.Cells["wire"].Value.ToString();
textBox_cost.Text = row.Cells["cost"].Value.ToString();
}
}
}