数据查找出来有2109条记录,但这样操作删除时,会出现超时,请问有什么办法能解决呀?CmdText="Select * d_NO from Vendition_Data"+term;
rs=OperateObject.ExecuteReader(CommandType.Text,CmdText,null);
while(rs.Read())
{
CmdText="Delete from Vendition_Data where d_NO='R"+rs["d_NO"].ToString().Substring(1,10)+"'"; //退
Cmd.CommandText=CmdText;
Cmd.ExecuteNonQuery();
CmdText="Delete from vendition_info where d_NO='"+rs["d_NO"].ToString()+"'";//整机
Cmd.CommandText=CmdText;
Cmd.ExecuteNonQuery();
CmdText="Delete from vendition_Pei where d_NO='"+rs["d_NO"].ToString()+"'";//整配件
Cmd.CommandText=CmdText;
Cmd.ExecuteNonQuery();
CmdText="Delete from Vendition_Fittings_Detail where s_code='"+rs["d_NO"].ToString()+"'";//配制
Cmd.CommandText=CmdText;
Cmd.ExecuteNonQuery();
Del_I++;
}
rs.Close();
CmdText="Delete from Vendition_Data"+term;
Cmd.CommandText=CmdText;
Cmd.ExecuteNonQuery();

解决方案 »

  1.   

    cmd.CommandTimeout = 300;或者更大
      

  2.   

    用类似下面的方法一次性删除一个表,不需要循环
    "Delete from vendition_info where exists (Select * d_NO from Vendition_Data where Vendition_Data.d_No = vendition_info.d_No)"
      

  3.   

    建议查下SQL server的进程,是不是有别的语句或SP锁表了,导致你要等待资源之前遇到过~
      

  4.   

    一共才2910条数据,用了while(rs.read)来删除就不行啦,我将整个表9万多条数据一起删除都没有问题,就是用了SqlDataReader才会出现这种情况哦