// hien thi ban theo ma -- form nhan vien public List <BanDB> ban_timkiem(string tukhoa, string tim_theo, string tang) { List <BanDB> bandb = new List <BanDB>(); try { SqlConnection cn = new SqlConnection(ketnoi.cn); cn.Open(); string sql = "select * from ban where " + tim_theo + " like '%" + tukhoa + "%' and ma_tang = '" + tang + "'"; SqlCommand cmd = new SqlCommand(sql, cn); SqlDataReader rd = cmd.ExecuteReader(); while (rd.Read()) { BanDB ban = new BanDB(); ban.ma_ban = rd.GetString(0); ban.ten_ban = rd.GetString(1); ban.trang_thai = rd.GetBoolean(2); ban.matang = rd.GetString(3); bandb.Add(ban); } rd.Close(); } catch { } return(bandb); }
// load ds ban public List <BanDB> tang() { List <BanDB> tang = new List <BanDB>(); try { SqlConnection cn = new SqlConnection(ketnoi.cn); cn.Open(); string sql = "select * from ban"; SqlCommand cmd = new SqlCommand(sql, cn); SqlDataReader rd = cmd.ExecuteReader(); while (rd.Read()) { BanDB ban = new BanDB(); ban.ma_ban = rd.GetString(0); ban.ten_ban = rd.GetString(1); ban.trang_thai = rd.GetBoolean(2); ban.matang = rd.GetString(3); tang.Add(ban); } rd.Close(); } catch { } return(tang); }
/// <summary> /// Initiate the legacy NoSQL Freelancer storage. /// </summary> /// <param name="dbPath">Path to the SQLite database file. DB will be created if file is nonexistent.</param> /// <param name="accPath">Path to accounts' directory.</param> /// <param name="log"></param> public NoSQLDB(string dbPath, string accPath, LogDispatcher.LogDispatcher log) { //One-shot event assignment; NoSQLDB-Retriever Logger.LogDisp = log; //Retriever = new MetaRetriever(this); AccPath = accPath; if (!File.Exists(dbPath)) { SQLiteConnection.CreateFile(dbPath); _conn = new SQLiteConnection(); var conString = new SQLiteConnectionStringBuilder { DataSource = dbPath }; _conn.ConnectionString = conString.ToString(); try { _conn.Open(); } catch (Exception e) { Logger.LogDisp.NewMessage(LogType.Fatal, "NoSQLDB: Can't connect to new player DB. Reason: " + e.Message); throw; } // Create data base structure var createDataBase = _conn.CreateCommand(); // Useful method createDataBase.CommandText = CreateDBString.Replace("@Table", "Accounts"); createDataBase.ExecuteNonQuery(); createDataBase.CommandText = CreateDBString.Replace("@Table", "DelAccounts"); createDataBase.ExecuteNonQuery(); createDataBase.CommandText = @"CREATE TABLE LoginIP( AccID TEXT NOT NULL, IP TEXT NOT NULL, LogTime DATETIME NOT NULL, PRIMARY KEY (AccID, IP) ON CONFLICT REPLACE );"; createDataBase.ExecuteNonQuery(); createDataBase.CommandText = @"CREATE TABLE LoginID( AccID TEXT NOT NULL, ID1 TEXT NOT NULL, ID2 TEXT NOT NULL );"; createDataBase.ExecuteNonQuery(); createDataBase.CommandText = @"CREATE TABLE Bans( AccID TEXT NOT NULL PRIMARY KEY ON CONFLICT REPLACE, Reason TEXT NOT NULL, DateStarting DATETIME NOT NULL, DateFinishing DATETIME NOT NULL );"; createDataBase.ExecuteNonQuery(); createDataBase.CommandText = "CREATE INDEX AccLookup ON LoginIP(AccID ASC);"; createDataBase.ExecuteNonQuery(); createDataBase.CommandText = "CREATE INDEX CharLookup ON Accounts(CharName ASC);"; createDataBase.ExecuteNonQuery(); _conn.Close(); Logger.LogDisp.NewMessage(LogType.Warning, "Created new player DB."); } // Base created fo sho _conn = new SQLiteConnection(); var cs = new SQLiteConnectionStringBuilder {DataSource = dbPath}; _conn.ConnectionString = cs.ToString(); _conn.Open(); Logger.LogDisp.NewMessage(LogType.Info, "NoSQLDB: Connected."); Queue = new DBQueue(_conn, "NoSQLDB.Main"); LoginDB = new LoginDatabase( _conn, Queue); Bans = new BanDB(this); //TODO: might need to use non-hardcoded paths BansID = new IniBan(accPath + @"\loginidbans.ini"); BansIP = new IniBan(accPath + @"\ipbans.ini"); Scan = new Scanner(_conn,this); Retriever = new DBCrawler(_conn); Scan.StateChanged += Scan_StateChanged; if (StateChanged != null) StateChanged(DBStates.Ready); }