你的代码有问题。
this.listBox.SelectedIndex并不是实际的Rows里的index
这两个值并不一一对应。index是静态的,不会随着你的删除自动排序。
所以应该会出现找不到那个行,或不能访问已经被删除的行的错误。你可以使用
this.cmDataSet.Tables["CommiteeMan"].DefaultView[this.listBox.SelectedIndex].delete()
这样应该不会有错了。
this.listBox.SelectedIndex并不是实际的Rows里的index
这两个值并不一一对应。index是静态的,不会随着你的删除自动排序。
所以应该会出现找不到那个行,或不能访问已经被删除的行的错误。你可以使用
this.cmDataSet.Tables["CommiteeMan"].DefaultView[this.listBox.SelectedIndex].delete()
这样应该不会有错了。
解决方案 »
- C# .net 问一下在vs2005里的checkBox这个控件
- 窗体名是一个变量,如何判断这个窗体是否已经存在
- datagridview数据如何刷新(wcf),ResetBindings(false)之后 表格没有变化
- 在使用report时候出现的 变态难以解决的问题 求助达人
- SqlParameter 返回参数问题?
- 注册表的小问题,解决就给分在线等
- 求避免死路的算法
- 如何将textbox中的内容及时更新到他所绑定的变量中?
- 非常着急,小问题,在c#里怎么获得两个时间之间相差多少个星期?
- Datagridview 在没有绑定数据的情况下,可以实现编辑吗?
- 求教SQL Server 连接问题!
- 运行水晶报表时发生错误:CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败
string sDelID = "";
for(int i=0; i< list.Items.Count; i++)
{
if(!list.Items[i].Selected)
{
if(sDelID != "")
sDelID += ",";
sDelID += list.Items[i].Value; //如果是字符类的加''
}
}string sql = "Delete Table Where id not in ()";
for(int i = list.Items.Count-1;i > -1;i--)
{
if(list.Items[i].Selected == true)
{
//* your code
}}
for(int i = list.Items.Count-1;i > -1;i--)
{
if(list.Items[i].Selected == true)
{
//* your code
}}