在datagrid中删除选中行的数据,我设置了一个循环,为什么结果只执行了一次?在datagrid中设置了一个模板列,放了checkbox控件,删除所有选中的checkbox行的数据。代码如下:
private void Button2_Click(object sender, System.EventArgs e)
{
int itemcount=DataGrid1.Items.Count;
int [] examid=new int[itemcount];
int i=0;
foreach (DataGridItem dg in DataGrid1.Items)
{
CheckBox cb=(CheckBox)dg.FindControl("cbb");
if(cb.Checked)
{
int id=int.Parse(dg.Cells[0].Text);
examid[i]=id;
i++;
}
}
for (int j=0;j<examid.Length;j++)
{
string sttr="delete from Tbexam where exam_id="+examid[j];
SqlCommand cmmd=new SqlCommand(sttr,conn);
SqlDataAdapter dds=new SqlDataAdapter(cmmd);
DataSet dss=new DataSet();
try
{
conn.Open();
dds.Fill(dss);
DataGrid1.DataSource=dss;
DataGrid1.DataBind();
conn.Close();
}
catch (Exception ee)
{
System.Console.WriteLine(ee.Message);
}
} BindData();
}如果你选中多行,程序运行后,结果只删除了选中的第一行,不知为什么?请指教!
private void Button2_Click(object sender, System.EventArgs e)
{
int itemcount=DataGrid1.Items.Count;
int [] examid=new int[itemcount];
int i=0;
foreach (DataGridItem dg in DataGrid1.Items)
{
CheckBox cb=(CheckBox)dg.FindControl("cbb");
if(cb.Checked)
{
int id=int.Parse(dg.Cells[0].Text);
examid[i]=id;
i++;
}
}
for (int j=0;j<examid.Length;j++)
{
string sttr="delete from Tbexam where exam_id="+examid[j];
SqlCommand cmmd=new SqlCommand(sttr,conn);
SqlDataAdapter dds=new SqlDataAdapter(cmmd);
DataSet dss=new DataSet();
try
{
conn.Open();
dds.Fill(dss);
DataGrid1.DataSource=dss;
DataGrid1.DataBind();
conn.Close();
}
catch (Exception ee)
{
System.Console.WriteLine(ee.Message);
}
} BindData();
}如果你选中多行,程序运行后,结果只删除了选中的第一行,不知为什么?请指教!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货