.net 中datagridview 中如何删除多行,同时删除数据库

privatevoidbtn_sc_Click(objectsender,EventArgse){intid=Convert.ToInt32(dg_zcdw.Curren... private void btn_sc_Click(object sender, EventArgs e)
{
int id = Convert.ToInt32(dg_zcdw.CurrentRow.Cells[0].Value);
DialogResult da = MessageBox.Show("是否删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (da == DialogResult.Yes)
{
int result = AssetStateManage.DeleteAssetState(id); //删除的方法我是调用的三层中写好的删除方法
if (result > 0)
{
System.Windows.Forms.MessageBox.Show("删除成功!");
}
}
}

这个是我写的代码 只能删除一行 如何在这个基础上删除多行同时数据库也删除,
三层中的删除方法:
public static int DeleteAssetState(int asa)
{
string sql = "delete AssetState where A_zcztid=" + asa;
return DBHelpSQL.ExecuteCommand(sql);

}
高手指教呀
展开
 我来答
threecloud2
推荐于2016-08-19 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:29.4万
展开全部
要批量删除的话,一般就是设置一下gridview的样式,在每一行上放入一个复选框,选中哪个复选框就删除哪行。
protected void btnAll_Click(object sender, EventArgs e)
{
//全选用
int rowchk = grdMyCart.Rows.Count;
if (btnAll.Text == "全 选")
{
btnAll.Text = "全不选";
for (int i = 0; i < rowchk; i++)
{
CheckBox chk = (CheckBox)grdMyCart.Rows[i].FindControl("chSeclect");
chk.Checked = true;
}
}
else
{
btnAll.Text = "全 选";
for (int i = 0; i < rowchk; i++)
{
CheckBox chk = (CheckBox)grdMyCart.Rows[i].FindControl("chSeclect");
chk.Checked = false;
}
}
}
protected void btnDel_Click(object sender, EventArgs e)
{
//////-------删除产品信息---------
ArrayList rowCel = new ArrayList();
int rowCount = grdMyCart.Rows.Count;
//循环得到选中产品的编号
for (int i = 0; i < rowCount; i++)
{
CheckBox chDel = (CheckBox)grdMyCart.Rows[i].FindControl("chSeclect");
if (chDel.Checked == true)
{
rowCel.Add(grdMyCart.Rows[i].Cells[1].Text);
}
}
//调用数据访问类的删除方法
if (rowCel.Count > 0)
{
int resault = Delcardata(rowCel);
lblMessage.Text = "成功删除了 " + resault + " 条记录!";
}
else
{
Response.Write("<script language=\"javascript\">window.alert(\"请选择要删除的书籍!\")</script>");
}
//重新读取购物车信息
displayData();
}

这是我以前找到过的代码片段,你看看
百度网友2f1730336
2011-09-14 · TA获得超过911个赞
知道小有建树答主
回答量:1316
采纳率:0%
帮助的人:1066万
展开全部
我也刚做完这样类似的一个功能
我的第一列存储ID,以下的代码,表面看是删除一条记录,其实是可以删除所有选中的数据行:

private void DataMonitorPoint_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{

try
{
//ISDelete = true;
string PointID = e.Row.Cells[0].Value.ToString();//捕捉选中的ID,
string SqlDelete = "Delete * from DTS_MONITOR_POINT where ID=" + PointID;
DbHelperOleDb.ExecuteSql(SqlDelete);

}
catch
{

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1a412ba
2011-09-14 · TA获得超过240个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:232万
展开全部
dg_zcdw.SelectedRows[0].Cell[0].Value
dg_zcdw.SelectedRows[1].Cell[1].Value

public static int DeleteAssetState(List<int> asa)
{
string ids = string.Join(",",asa);
string sql = "delete AssetState where A_zcztid IN (" + ids + ")";
return DBHelpSQL.ExecuteCommand(sql);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式