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(); } }
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; } }
//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; } }