string strQueryString = "select * from gx_xtczy"; SqlDataAdapter sqlDA = new SqlDataAdapter(strQueryString, sqlConn);
DataSet ds = new DataSet();
sqlDA.Fill(ds, "dt1");
DataTable dt = ds.Tables["dt1"]; for (int j = 0; j < 3; j++)
{
int x = dt.Rows.Count - 1;
for (int i = 0; i < x ; i++)
{ if (i % 2 == 1)
{
try
{
dt.Rows[i].Delete();
break;
}
catch (Exception ex)
{ }
} } }代码如上,debug进去发现每次在dt.Rows[i].Delete();后都报异常:
ItemArray “dt.Rows[i].ItemArray”引发了“System.Data.DeletedRowInaccessibleException”类型的异常 object[] {System.Data.DeletedRowInaccessibleException}base异常为:
{"不能通过已删除的行访问该行的信息。"} System.SystemException {System.Data.DeletedRowInaccessibleException}为什么呢???
换用rows.removeat(i)也是一样的报错。
DataSet ds = new DataSet();
sqlDA.Fill(ds, "dt1");
DataTable dt = ds.Tables["dt1"]; for (int j = 0; j < 3; j++)
{
int x = dt.Rows.Count - 1;
for (int i = 0; i < x ; i++)
{ if (i % 2 == 1)
{
try
{
dt.Rows[i].Delete();
break;
}
catch (Exception ex)
{ }
} } }代码如上,debug进去发现每次在dt.Rows[i].Delete();后都报异常:
ItemArray “dt.Rows[i].ItemArray”引发了“System.Data.DeletedRowInaccessibleException”类型的异常 object[] {System.Data.DeletedRowInaccessibleException}base异常为:
{"不能通过已删除的行访问该行的信息。"} System.SystemException {System.Data.DeletedRowInaccessibleException}为什么呢???
换用rows.removeat(i)也是一样的报错。
解决方案 »
- 多线程接收时,停止线程,有异常报出,如何解决?
- 求两算法,一算法能生成一串随机数,然后另一算法验证字符是否上一个算法生成的
- C#中控制打印的问题
- 不显示删除回复显示所有回复显示星级回复显示得分回复 为什么我得dateTimePicker总是得到的是当前的值?
- 哈希算法求教
- 关于foreach in 的问题
- 两个form ,在form2里面查询的结果我怎么绑定到 form1里面的datagirdview里面
- app.config的这样的字符串怎么写?
- c#+access开发问题 for 标准表达式中的数据类型不匹配
- 输入法(C#):1、如何将汉字输入到焦点所在窗体 2、拼音纠错如何实现
- 正则表达式截取局部文本
- c#连接oracle问题
倒过来删除的代码如下,这次换了removeat方法:SqlDataAdapter sqlDA = new SqlDataAdapter(strQueryString, sqlConn);
DataSet ds = new DataSet();
sqlDA.Fill(ds, "dt1");
DataTable dt = ds.Tables["dt1"]; for (int j = 0; j < 4; j++)
{
int x = dt.Rows.Count - 1;
for (int i = x; i >= 0 ; i--)
{ if (i % 2 == 1)
{
try
{
//dt.Rows[i].Delete();
dt.Rows.RemoveAt(i);
break;
}
catch (Exception ex)
{ }
} } }
DataSet ds = new DataSet();
sqlDA.Fill(ds, "dt1");
DataTable dt = ds.Tables["dt1"]; for (int j = 0; j < 4; j++)
{
int x = dt.Rows.Count - 1;
for (int i = x; i >= 0 ; i-2)
{
try
{
//dt.Rows[i].Delete();
dt.Rows.RemoveAt(i);
break;
}
catch (Exception ex)
{ }
} }
delete方法那段代码达不到目的,。
要用removeat或者remove方法。
要用delete方法的话要在delete前面加一个状态判定。。
自己能给自己100分不?不能吧