db.ExecuteSQL(sql) 返回受影响行数所以你这样不会=-1的 还有 你这里重复执行了2次了
db.ExecuteSQL(sql);
  if (db.ExecuteSQL(sql) == -1)--这里就永远=0了

解决方案 »

  1.   

    这种情况
    SQL数据库是汇报删除成功的
      

  2.   

    /*------------------------
    delete from sys where userid=1
    ------------------------*/(0 行受影响)
      

  3.   

    db.ExecuteSQL(sql);
      if (db.ExecuteSQL(sql) == -1)
      

  4.   

     private void btnDelete_Click(object sender, EventArgs e)
      {
      string sql = "";
      Database db = new Database();  sql+= "Delete from [Course]";
      sql += " where CNo=" + SqlStringConstructor.GetQuotedString(textBoxCNo.Text);  int rlt = db.ExecuteSQL(sql);  if (rlt == -1)
      {
          MessageBox.Show("删除失败!");
      }
      
      if (rlt > 0) 
      {
          MessageBox.Show("删除成功!");
      }
      else
      {
          MessageBox.Show("无该记录!");
      }
      }无记录ExecuteSQL返回影响行数为0,显然不满足-1条件,所以会认为是成功。