Datagridview сталкивается друг с другом
Это строка кода, которая вызывает проблему. Этот код работает, но есть проблема.
public void LoadProducts() {//this line of code is completely alien to me and it is for to search bar int i = 0; dataGridView2.Rows.Clear(); cn.Open(); cm = new SqlCommand("Select p.pcode, p.barcode, p.pdesc, b.brand, c.category, p.price, p.qty from tblProduct as p inner join tblBrand as b on b.id = p.bid inner join tblCategory as c on c.id = p.cid where p.pdesc like @pdesc", cn); cm.Parameters.AddWithValue("@pdesc", "%" + textAra.Text + "%"); dr = cm.ExecuteReader(); while (dr.Read()) { i++; dataGridView2.Rows.Add(i, dr[0].ToString(), dr[1].ToString(), dr[2].ToString(), dr[3].ToString(), dr[4].ToString(), dr[5].ToString(), dr[6].ToString()); } dr.Close(); cn.Close(); }
Я вызываю эту функцию из формы внутри другой формы, и эти две формы имеют отдельные представления datagridviews. Теперь материнская форма имеет datagridview1, а дочерняя-datagridview2.
Материнская форма имеет кнопку, при нажатии на которую отображается наша дочерняя форма, и вот в чем проблема. Когда я пишу
private void pictureBox1_Click(object sender, EventArgs e) { this.Dispose(); }
моя детская форма закрывается, и моя материнская форма возвращается. Но это дает мне ошибку говоря
No row can be added to a DataGridView control that does not have columns. Columns must be added first
Теперь есть код в материнской форме, который я использую, чтобы назвать мою детскую форму.
private void btnSearch_Click(object sender, EventArgs e) { if(textSearch.Text == String.Empty) { frmLookProduct früb = new frmLookProduct(); früb.ShowDialog(); früb.LoadProducts(); } }
я считаю, что проблема заключается в том, что früb.LoadProducts(); line.
Что я уже пробовал:
Когда я уберу фрюба.LookProduct(); и используйте ту же строку кода в
private void frmLookProduct_Load(object sender, EventArgs e) { LoadProducts(); }
это не дает никаких проблем, но разве это не вызовет дальнейших проблем?