Вы, кажется, повторно используете da
и dt
.Повторное использование da
не проблема, но повторное использование dt
есть.Когда вы присваиваете dt
DataGridView.DataSource, данные НЕ копируются!Таким образом, в конце оба DataGridView будут использовать один и тот же объект DataTable, который содержит данные из второй таблицы (медаль).
Вы можете попробовать это:
private void Ring_Load(object sender, EventArgs e)
{
showdata();
showmedal();
}
void showdata()
{
SqlConnection con = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand("SELECT Number,Weight,Ring_Id FROM Ring", con);
da.SelectCommand = cmd;
DataTable dt1 = new DataTable();
da.Fill(dt1);
dataGridView1.DataSource = dt1;
dataGridView1.Columns[3].Visible = false;
}
void showmedal()
{
SqlConnection con = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand("SELECT Number,Weight,Ring_Id FROM medal", con);
da.SelectCommand = cmd;
DataTable dt2 = new DataTable();
da.Fill(dt2);
dataGridView2.DataSource = dt2;
}
Редактировать: переименованлокальные переменные DataTable для ясности.