C# 如何删除asp.net中绑定的复选框列表中的一项?
这是我的绑定代码:C# 如何删除asp.net中绑定的复选框列表中的一项?,c#,asp.net,checkboxlist,C#,Asp.net,Checkboxlist,这是我的绑定代码: string connection_string = ConfigurationManager.ConnectionStrings["DBC"].ConnectionString; SqlConnection con = new SqlConnection(connection_string); con.Open(); SqlDataAdapter dataadapter = new SqlDataAda
string connection_string = ConfigurationManager.ConnectionStrings["DBC"].ConnectionString;
SqlConnection con = new SqlConnection(connection_string);
con.Open();
SqlDataAdapter dataadapter = new SqlDataAdapter("Select * from stud_table", con);
DataSet ds = new DataSet();
dataadapter.Fill(ds);
CheckBoxList1.DataSource = ds;
CheckBoxList1.DataTextField = "Name";
CheckBoxList1.DataValueField = "Rollno";
CheckBoxList1.DataBind();
con.Open();
按钮代码:
protected void Button2_Click(object sender, EventArgs e)
{
for(int i=0;i<CheckBoxList1.Items.Count ;i++)
{
if (CheckBoxList1.Items[i].Selected == true)
{
CheckBoxList1.Items.RemoveAt(i);
}
}
}
protectedvoid按钮2\u单击(对象发送者,事件参数e)
{
对于(int i=0;i给你,希望这有助于:
public partial class Default : System.Web.UI.Page
{
private readonly string connection_string = ConfigurationManager.ConnectionStrings["DBC"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
BindData();
}
protected void Button2_Click(object sender, EventArgs e)
{
var itemsToDelete = new ListItemCollection();
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
itemsToDelete.Add(item);
}
foreach (ListItem item in itemsToDelete)
{
//Assuming your id column is Rollno
DeleteFromDB(item.Value);
CheckBoxList1.Items.Remove(item);
}
}
private void BindData()
{
using (var con = new SqlConnection(connection_string))
{
con.Open();
using (var adapter = new SqlDataAdapter("SELECT * FROM stud_table", con))
{
var ds = new DataSet();
adapter.Fill(ds);
CheckBoxList1.DataSource = ds;
CheckBoxList1.DataTextField = "Name";
CheckBoxList1.DataValueField = "Rollno";
CheckBoxList1.DataBind();
con.Close();
}
}
}
private void DeleteFromDB(string rollNo)
{
int id = 0;
if (Int32.TryParse(rollNo, out id))
{
using (var con = new SqlConnection(connection_string))
{
con.Open();
string commandText = String.Format("DELETE FROM stud_table WHERE Rollno={0}", id);
using (var command = new SqlCommand(commandText, con))
{
command.ExecuteNonQuery();
con.Close();
}
}
}
}
}
在DeleteFromDB上放置一个制动点并调试代码。数据库中是否存在传递到delete语句的rollNo否在DeleteFromDB中的if条件后不执行delete语句它将执行按钮2数据库中的rollNo是什么数据类型?如果是字符串/varchar/nvarchar,则删除if语句,且int id=0 and将delete语句更改为string commandText=string.Format(“从stud_表中删除,其中Rollno={0}”,Rollno);