读书人

这段代码为什么只能删除一行呢?该如何

发布时间: 2012-05-05 17:21:10 作者: rapoo

这段代码为什么只能删除一行呢?

C# code
 protected void allDelDropDownList()    {        string rowsID = "";        for (int i = 0; i < gV_ArticleCotrol.Rows.Count; i++)        {            CheckBox chbox = (CheckBox)gV_ArticleCotrol.Rows[i].FindControl("checkBoxX");            if (chbox.Checked == true)            {                rowsID = rowsID + gV_ArticleCotrol.DataKeys[i].Value.ToString();//获取选中ID                string delStr = "delete from articleControl_Table where artid='" + rowsID + "' ";                SqlConnection sqlDel = connectSqlData();                sqlDel.Open();                SqlCommand delCommand = new SqlCommand(delStr, sqlDel);                delCommand.ExecuteNonQuery();                sqlDel.Close();                gV_ArticleCotrol.EditIndex = -1;                gV_ArticleCotrol.DataSource = SqlDataArtSouce;                gV_ArticleCotrol.DataBind();              }                    }        gv_DataBind();     }

如题,为什么只能删除ID值最小的哪一项呢?求解,问题出现在那里呢??

[解决办法]
调试一下, 感觉你在循环中DataBind有点问题
[解决办法]
1.gV_ArticleCotrol.EditIndex = -1;
造成的吧

2.不喜欢这样的批量处理方法
[解决办法]
应该将字段定义放在循环里面,否则一直累加,只有最小的时候才是正确的rowsID
C# code
string rowsID = "";
[解决办法]
rowsID = rowsID + gV_ArticleCotrol.DataKeys[i].Value.ToString();//获取选中ID

为啥要不断的加呢。。。
[解决办法]
rowsID = rowsID + gV_ArticleCotrol.DataKeys[i].Value.ToString();//获取选中ID

rowsID怎么会循环递加呢??

rowsID = gV_ArticleCotrol.DataKeys[i].Value.ToString();//获取选中ID
[解决办法]
string rowsID = "";
for (int i = 0; i < gV_ArticleCotrol.Rows.Count; i++)
{
CheckBox chbox = (CheckBox)gV_ArticleCotrol.Rows[i].FindControl("checkBoxX");
if (chbox.Checked == true)
{
rowsID = rowsID +","+ gV_ArticleCotrol.DataKeys[i].Value.ToString();//获取选中ID

}

}
string delStr = "delete from articleControl_Table where artid in('" + rowsID + "' )";
SqlConnection sqlDel = connectSqlData();
sqlDel.Open();
SqlCommand delCommand = new SqlCommand(delStr, sqlDel);
delCommand.ExecuteNonQuery();
sqlDel.Close();
gV_ArticleCotrol.EditIndex = -1;
gV_ArticleCotrol.DataSource = SqlDataArtSouce;
gV_ArticleCotrol.DataBind();

读书人网 >C#

热点推荐