По старинке, для внесения изменений, произошедших в DataGridView, я определял заново соединение, OleDbDataAdapter, OleDbCommandBuilder и DataSet – и, возможно, это и правильно, потому что нам потом легче изменять, например, строку запроса.
Но опытный Борис Моисеев будет против таких излишеств, он обойдётся следующим:
public partial class Frm_ref_staff : Form
{
public Frm_ref_staff()
{
InitializeComponent();
}
//объявление строки соединения
public OleDbConnection conn;
//view1
public OleDbDataAdapter dataadapter_tbl_staff;
public OleDbCommandBuilder comandbuilder_tbl_staff;
public DataSet dataset_tbl_staff;
private void Frm_ref_staff_Load(object sender, EventArgs e)
{
//строка соединения
conn = new OleDbConnection("Provider=SQLOLEDB;Data Source=IST;Integrated Security=SSPI;Initial Catalog=DBGIS");
if (conn.State != ConnectionState.Open)
conn.Open();
dataadapter_tbl_staff = new OleDbDataAdapter("SELECT * FROM Tbl_officer", conn);
comandbuilder_tbl_staff = new OleDbCommandBuilder(dataadapter_tbl_staff);
dataset_tbl_staff = new DataSet();
dataadapter_tbl_staff.Fill(dataset_tbl_staff, "staff");
dataadapter_tbl_staff.TableMappings.Add("Table_staff", "staff");
dataGridView1.DataSource = dataset_tbl_staff.Tables[0];
}
private void Frm_ref_staff_FormClosed(object sender, FormClosedEventArgs e)
{
((Frm_VodoCheb)this.MdiParent).staffToolStripMenuItem.Visible = true;
}
private void button1_Click(object sender, EventArgs e)//кнопка "Сохранить изменения"
{
try
{
dataadapter_tbl_staff.Update((DataTable)dataGridView1.DataSource);
MessageBox.Show("Изменения в базе данных выполнены!",
"Уведомление о результатах", MessageBoxButtons.OK);
}
catch (Exception)
{
MessageBox.Show("Изменения в базе данных выполнить не удалось!",
"Уведомление о результатах", MessageBoxButtons.OK);
}
}
}
Но опытный Борис Моисеев будет против таких излишеств, он обойдётся следующим:
public partial class Frm_ref_staff : Form
{
public Frm_ref_staff()
{
InitializeComponent();
}
private void Frm_ref_staff_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "dataSet_DBGIS_ASU.Tbl_officer". При необходимости она может быть перемещена или удалена.
this.tbl_officerTableAdapter.Fill(this.dataSet_DBGIS_ASU.Tbl_officer);
}
private void Frm_ref_staff_FormClosed(object sender, FormClosedEventArgs e)
{
((Frm_VodoCheb)this.MdiParent).staffToolStripMenuItem.Visible = true;
}
private void button1_Click(object sender, EventArgs e)//кнопка "Сохранить изменения"
{
try
{
this.tbl_officerTableAdapter.Update(this.dataSet_DBGIS_ASU.Tbl_officer);
MessageBox.Show("Изменения в базе данных выполнены!",
"Уведомление о результатах", MessageBoxButtons.OK);
}
catch (Exception)
{
MessageBox.Show("Изменения в базе данных выполнить не удалось!",
"Уведомление о результатах", MessageBoxButtons.OK);
}
}
}