title: sqlite datareader
body: <p>In my c# appliaction am facing problem in below code,for deleting items from database,</p>
  
  <pre><code>if (orderedRelationSet.RemoveRelation(relation) != true)
  {
      TouchServer.Log(Logger.MessageType.Error, 0,     OrderedRelationSet.error_msg + "Remove relation operation failed");
      throw new Exception("remove relation failed");
  }
  
  
  
  public bool RemoveRelation(Relation relation)
  {
      Relation relationToRemove = null;
      relationToRemove = relation;
  
      int roweffected = 0;
      int flg_delete = 0;
  
      int ordinal_source = 0;
  
      if (relationToRemove != null)
      {
  
          SQLiteDataReader dr_readtype = db.ExecuteSQL("select typeid from item where id=" + relation.ThingId + "");
          try
          {
               dr_readtype.Read();
               type_id = Convert.ToInt32(dr_readtype[0]);
          }
          catch (Exception)
          {
          }
          finally
          {
              dr_readtype.Close();
              dr_readtype.Dispose();
  
          }
  
          SQLiteDataReader dr_ordinal = db.ExecuteSQL("select ordinal from relation where parent_itemid=" + relation.SourceThingId + " and child_itemid= " + relation.ThingId + ""); 
          try
          {
              dr_ordinal.Read();
              ordinal_source = Convert.ToInt32(dr_ordinal[0]); 
          }
          catch (Exception)
          {
          }
          finally
          {
              dr_ordinal.Close();
              dr_ordinal.Dispose();
          }
  
  
          if (flg_delete == 0 || db.currentUser.UserName=="System")
          {
              relations.Remove(relationToRemove);
              roweffected = relationToRemove.UnSet();
  
              type_id = 0;
          }
      }
      if (roweffected &gt;= 1)
      {
  
          SQLiteDataReader dr_ordinal = db.ExecuteSQL("select ordinal,child_itemid from relation where parent_itemid=" + relation.SourceThingId + " and ordinal &gt; " + ordinal_source + ""); 
          Hashtable list = new Hashtable();
          try
          {
              while (dr_ordinal.Read())
              {
                   list.Add(int.Parse(dr_ordinal[1].ToString()), int.Parse(dr_ordinal[0].ToString()));
                   //lis1.Add(int.Parse(dr_ordinal[1].ToString()));
              }
          }
          catch (Exception)
          {
          }
          finally
          {
              dr_ordinal.Close();
              dr_ordinal.Dispose()
          }
          int j = 0;
          foreach (int key in list.Keys)
          {
              int ordi = (int)list[key];
              int ordinal_result = ordi - 1;
  
              try
              {
                   string sqlExpr = "update relation set ordinal=@ordinal_result where parent_itemid=@relation_SourceThingId and child_itemid=@key";
                   SQLiteCommand _updateRelation = new SQLiteCommand();
                   _updateRelation.CommandText = sqlExpr;
                   _updateRelation.Parameters.AddWithValue("@ordinal_result", ordinal_result);
                  _updateRelation.Parameters.AddWithValue("@relation_SourceThingId", relation.SourceThingId);
                  _updateRelation.Parameters.AddWithValue("@key", key);
                  int update_sql = db.ExecuteNonQuerySQL(_updateRelation);
  
              }
              catch (Exception)
              {
              }
              j++;
  
          }
          string sqlExprs = "UPDATE item SET modified =@dates,modifiedby =@currentUser WHERE id =@relation_SourceThingId";
          SQLiteCommand _updateItem = new SQLiteCommand();
          _updateItem.CommandText = sqlExprs;
          _updateItem.Parameters.AddWithValue("@dates", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
         _updateItem.Parameters.AddWithValue("@currentUser", db.currentUser.id);
         _updateItem.Parameters.AddWithValue("@relation_SourceThingId", relation.SourceThingId);
         int affect = db.ExecuteNonQuerySQL(_updateItem);
  
         return true;
     }
     else
     {                   
         return false;
     }
  
     flg_delete = 0;
  }
  </code></pre>
  
  <p>Its not deleting the data..
  Please help..</p>