here, in my win project ,have button "update Subject" in data grid view (dgv) in form
and add event on clicked at this button open a popup win to update Subject (content Field)
here, problem is when i clicked button, multiple win is opened .
and also when i clicked btndelete multiple row are delete
how can i solve it
my code is
private void Subjectseup()
{
gvsubjectsetup.DataSource = null;
try
{
string querystring = "SELECT * FROM dbo.Subjects";
DataTable datatable = Class1.Datatablebind(querystring);
if (datatable.Rows.Count > 0)
{
gvsubjectsetup.AutoGenerateColumns = false;
gvsubjectsetup.ColumnCount = 8;
gvsubjectsetup.Columns[0].Name = "Subjectid";
gvsubjectsetup.Columns[0].HeaderText = "Subject Id";
gvsubjectsetup.Columns[0].DataPropertyName = "Subject_id";
gvsubjectsetup.Columns[1].HeaderText = "Subject Name";
gvsubjectsetup.Columns[1].Name = "Subject";
gvsubjectsetup.Columns[1].DataPropertyName = "Subject Name";
gvsubjectsetup.Columns[2].HeaderText = "Allow Class";
gvsubjectsetup.Columns[2].Name = "AllowClass";
gvsubjectsetup.Columns[2].DataPropertyName = "Allow Class";
gvsubjectsetup.Columns[3].Name = "SubjectType";
gvsubjectsetup.Columns[3].HeaderText = "Subject Type";
gvsubjectsetup.Columns[3].DataPropertyName = "Subject Type";
gvsubjectsetup.Columns[4].HeaderText = "Subject Valuation";
gvsubjectsetup.Columns[4].DataPropertyName = "Subject valuation";
gvsubjectsetup.Columns[5].HeaderText = "Create Date";
gvsubjectsetup.Columns[5].DataPropertyName = "Create date";
gvsubjectsetup.Columns[6].HeaderText = "Category";
gvsubjectsetup.Columns[6].DataPropertyName = "category";
DataGridViewButtonColumn updatebutton = new DataGridViewButtonColumn();
DataGridViewButtonColumn deletbutton = new DataGridViewButtonColumn();
updatebutton.HeaderText = "Update Classes";
updatebutton.Text = "Update";
updatebutton.Name = "btnUpdate";
deletbutton.HeaderText = "Delete Classes";
deletbutton.Text = "Delete";
deletbutton.Name = "btnDelete";
updatebutton.UseColumnTextForButtonValue = true;
deletbutton.UseColumnTextForButtonValue = true;
gvsubjectsetup.Columns.Add(updatebutton);
gvsubjectsetup.Columns.Add(deletbutton);
gvsubjectsetup.CellClick += new DataGridViewCellEventHandler(gvsubjectsetup_click);
gvsubjectsetup.DataSource = new BindingSource(datatable, null);
}
else
{
return;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//here i handle event
public void gvsubjectsetup_click(object sender, DataGridViewCellEventArgs e)
{
try
{
Int32 id = 0;
if (gvsubjectsetup.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0)
{
if ((e.RowIndex > 0) || (e.ColumnIndex == gvsubjectsetup.Columns["btnUpdate"].Index) || (e.ColumnIndex == gvsubjectsetup.Columns["btnDelete"].Index))
{
if (e.ColumnIndex == gvsubjectsetup.Columns["btnUpdate"].Index)
{
id = (Int32)gvsubjectsetup[0, e.RowIndex].Value;
string s = "update subject";
Subjectpopwindows popwin = new Subjectpopwindows(s, id);
popwin.Show();
}
else if (e.ColumnIndex == gvsubjectsetup.Columns["btnDelete"].Index)
{
int subneme = (Int32)gvsubjectsetup[0, e.RowIndex].Value;
{
DialogResult result = MessageBox.Show("Do You Want to delete Class " + subneme + "?", "Delete", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
if (result.Equals(DialogResult.OK))
{
string delete = " DELETE FROM dbo.Subjects WHERE Subject_id='" + subneme + "'";
Class1.insertrecord(delete);
MessageBox.Show("Delete Successfully !");
Subjectseup();
return;
}
else
{
return;
}
}
}
else
return;
}
else
{
return;
}
}
else
{
return;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}