У меня есть быстрый вопрос. Всякий раз, когда я вставляю что-то в свой C# -интерфейс (который подключен к базе данных SQL), я получаю сообщение «Сохраненные данные», которое я запрограммировал (и он сохраняет данные в базе данных), но мой DataGridView не обновляется, если только я закройте приложение и запустите его снова.Обновление DataGridView в Runtime
Мой код:
private void frmCatalogoMunicipios_Load(object sender, EventArgs e)
{
cmd.Connection = conexion;
}
private void frmCatalogoMunicipios_Shown(object sender, EventArgs e)
{
CargaEstados();
CargaDataGridView();
}
private void CargaEstados()
{
conexion.Open();
txtNomMun.Focus();
try
{
DataSet ds = new DataSet();
MySqlDataAdapter da = new MySqlDataAdapter("SELECT cveestado, nombre FROM tbestados", conexion);
da.Fill(ds, "FillDropDown");
cbEstado.DisplayMember = "Nombre";
cbEstado.ValueMember = "CveEstado";
cbEstado.DataSource = ds.Tables["FillDropDown"];
conexion.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void CargaDataGridView()
{
conexion.Open();
try
{
cmd.CommandText = "SELECT m.cvemunicipio, m.nombre AS NombreA, e.nombre AS NombreB FROM tbMunicipios m INNER JOIN tbEstados e ON m.CveEstado = e.CVeEstado";
rd = cmd.ExecuteReader();
while (rd.Read())
{
this.dataGridView1.Rows.Add(rd.GetValue(0), rd.GetValue(1), rd.GetValue(2));
}
conexion.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
conexion.Open();
try
{
cmd.CommandText = "insert into tbmunicipios (nombre, cveestado) values ('" + txtNomMun.Text + "', '" + cbEstado.SelectedValue.ToString() + "')";
cmd.ExecuteNonQuery();
cmd.Clone();
MessageBox.Show("Datos Guardados", "Mensaje");
conexion.Close();
Nuevo();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
EDIT
Я нашел ответ сам: как сказал @Obama. Мне нужно вызвать CargarDataGridView(), НО до этого я удалил все свои строки с помощью dataGridView1.Rows.Clear();
Итак, мой окончательный код:
conexion.Open();
try
{
cmd.CommandText = "insert into tbmunicipios (nombre, cveestado) values ('" + txtNomMun.Text + "', '" + cbEstado.SelectedValue.ToString() + "')";
cmd.ExecuteNonQuery();
cmd.Clone();
MessageBox.Show("Datos Guardados", "Mensaje");
conexion.Close();
dataGridView1.Rows.Clear();
CargaDataGridView();
Nuevo();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
У вас метод, который обновить DataGridView? если да, то какой я не понимаю испанский очень хорошо :) – Obama
Спасибо @Obama, я уже отвечаю на вопрос ниже. –