你的代码有问题。
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()
这样应该不会有错了。
解决方案 »
- 打开的方式不对?
- 关于FileStream读取路径的问题
- windows Form 下datagrid绑定数组不显示数据的问题,有没有人有遇到过?
- C# listview 里显示数据再次录入到数据库中
- 如何对类XML格式数据流操作
- c#如何操作UNICODE的INI文件
- 关于HttpWebRequest的一些棘手问题!!!
- c#读excel问题
- 要毕业了,在江苏或是浙江的朋友能不能指点一下,小弟不胜感激!!
- winform 下 datagrid 读excel数据,并导入数据库
- 求教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
}}