示例#1
0
文件: Set.cs 项目: YoshiEnVerde/OCTGN
 private void LoadPacks()
 {
     cachedPacks = new List<Pack>();
       bool wasDbOpen = Game.IsDatabaseOpen;
       if (!wasDbOpen)
     Game.OpenDatabase(true);
       try
       {
     using (var conn = new VistaDB.Provider.VistaDBConnection(Game.db))
     {
       var cmd = conn.CreateCommand();
       cmd.CommandText = "SELECT [xml] FROM Pack WHERE setId = @setId ORDER BY name";
       cmd.Parameters.Add("setId", Id);
       using (var reader = cmd.ExecuteReader())
       {
     while (reader.Read())
       cachedPacks.Add(new Pack(this, reader.GetString(0)));
       }
     }
       }
       finally
       {
     if (!wasDbOpen)
       Game.CloseDatabase();
       }
 }
示例#2
0
 public System.Data.DataTable SelectCards(string[] conditions)
 {
     var sb = new StringBuilder();
     sb.Append("SELECT * FROM Card");
     if(conditions != null)
     {
         string connector = " WHERE ";
         foreach(string condition in conditions)
         {
             sb.Append(connector);
             sb.Append("(");
             sb.Append(condition);
             sb.Append(")");
             connector = " AND ";
         }
     }
     using(var conn = new VistaDB.Provider.VistaDBConnection(db))
     {
         var cmd = new VistaDB.Provider.VistaDBCommand();
         cmd.Connection = conn;
         cmd.CommandText = sb.ToString();
         var result = new System.Data.DataTable();
         result.Load(cmd.ExecuteReader());
         return result;
     }
 }
示例#3
0
        //TODO Lobby Changed. From
        /*
        public System.Data.DataTable SelectCards(string[] conditions)
        {
          var sb = new StringBuilder();
          sb.Append("SELECT * FROM Card");
          if (conditions != null)
          {
        string connector = " WHERE ";
        foreach (string condition in conditions)
        {
          sb.Append(connector);
          sb.Append("(");
          sb.Append(condition);
          sb.Append(")");
          connector = " AND ";
        }
          }
          using (var conn = new VistaDB.Provider.VistaDBConnection(db))
          {
        var cmd = new VistaDB.Provider.VistaDBCommand();
        cmd.Connection = conn;
        cmd.CommandText = sb.ToString();
        var result = new System.Data.DataTable();
        result.Load(cmd.ExecuteReader());
        return result;
          }
        }
           */
        //TO
        public System.Data.DataTable SelectCards(string[] conditions)
        {
            var sb = new StringBuilder("SELECT * FROM Card");
            List<String> sets = new List<String>();

            if (conditions != null)
            {
            string connector;

            connector = " ( ";
            int i = 0;
            bool foundSet = false;
            sb = new StringBuilder();
            foreach (string condition in conditions)
            {
                if (condition.Substring(0, 10).Equals("Card.setId"))
                {
                    sb.Append(connector);
                    sb.Append("(");
                    sb.Append(condition);
                    sb.Append(")");
                    connector = " OR ";
                    conditions[i] = "";
                    foundSet = true;
                }
                i++;
            }
            sb.Append(")");
            if (foundSet)
            {
                Array.Resize<string>(ref conditions, conditions.Length + 1);
                conditions[conditions.Length - 1] = sb.ToString();
            }
            sb = new StringBuilder("SELECT * FROM Card");
            connector = " WHERE ";
            foreach (string condition in conditions)
            {
                if (!condition.Trim().Equals(""))
                {
                    sb.Append(connector);
                    sb.Append("(");
                    sb.Append(condition);
                    sb.Append(")");
                    connector = " AND ";
                }
            }
            }
            using (var conn = new VistaDB.Provider.VistaDBConnection(db))
            {
            var cmd = new VistaDB.Provider.VistaDBCommand();
            cmd.Connection = conn;
            cmd.CommandText = sb.ToString();
            var result = new System.Data.DataTable();
            result.Load(cmd.ExecuteReader());
            return result;
            }
        }