PsyOps

BattleSQL

Mar 10th, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.47 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. using BattleCore;
  7. using BattleCore.Events;
  8. using BattleCorePsyOps;
  9.  
  10. using MySql.Data.MySqlClient;
  11. using System.Diagnostics;
  12.  
  13. namespace BZControl
  14. {
  15.     public class DBManager
  16.     {
  17.         public DBManager()
  18.         {
  19.             server = "server.com";
  20.             database = "DBName";
  21.             uid = "UIDName";
  22.             password = "MyPassWord";
  23.             string connectionString;
  24.             connectionString = "SERVER=" + server + ";" + "DATABASE=" +
  25.             database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
  26.  
  27.             connection = new MySqlConnection(connectionString);
  28.         }
  29.  
  30.         private MySqlConnection connection;
  31.         private string server;
  32.         private string database;
  33.         private string uid;
  34.         private string password;
  35.  
  36.         ShortChat msg = new ShortChat();
  37.  
  38.         public void SQLTest(Queue<EventArgs> q)
  39.         {
  40.                         //open connection
  41.             if (this.OpenConnection(q) == true)
  42.             {
  43.                 //string query = "UPDATE subspace_bz_arenalist SET playername='PsyOps', status='0' WHERE status='0'";
  44.                 //string query = "INSERT INTO subspace_bz_arenalist (playername,status,frequency) VALUES('Hallowed.', '1', '1')";
  45.                 string query = "UPDATE subspace_bz_arenalist SET status='5', frequency='9' WHERE playername='PsyOps'";
  46.                 MySqlCommand cmd = new MySqlCommand(query, connection);
  47.  
  48.                 //Execute command
  49.                 cmd.ExecuteNonQuery();
  50.  
  51.                 //close connection
  52.                 this.connection.Close();
  53.  
  54.                 q.Enqueue(msg.arena("Database update success."));
  55.             }
  56.  
  57.         }
  58.  
  59.         public void AddPLayerArenaList(Queue<EventArgs> q, MainPlayer Player)
  60.         {
  61.             try
  62.             {
  63.                 MySqlCommand cmd = new MySqlCommand("INSERT INTO subspace_bz_arenalist (playername,status,frequency) VALUES('" + Player.PlayerName + "', '" + (int)Player.CurrentShip + "', '" + (int)Player.Freq + "')", connection);
  64.                 //Execute command
  65.                 cmd.ExecuteNonQuery();
  66.  
  67.                 q.Enqueue(msg.arena("Player [ "+ Player.PlayerName +" ] Updated."));
  68.             }
  69.             catch (MySqlException ex)
  70.             {
  71.                 q.Enqueue(msg.arena("Error: " + ex));
  72.                 if (this.OpenConnection(q) == true)
  73.                 {
  74.                     MySqlCommand cmd = new MySqlCommand("INSERT INTO subspace_bz_arenalist (playername,status,frequency) VALUES('" + Player.PlayerName + "', '" + (int)Player.CurrentShip + "', '" + (int)Player.Freq + "')", connection);
  75.                     //Execute command
  76.                     cmd.ExecuteNonQuery();
  77.  
  78.                     q.Enqueue(msg.arena("Connection had to reconnect. Player [ " + Player.PlayerName + " ] Updated."));
  79.                 }
  80.                 else
  81.                     q.Enqueue(msg.arena("Update Failed."));
  82.             }
  83.         }
  84.  
  85.         public void InitiateDatabase(Queue<EventArgs> q, List<MainPlayer> MasterList)
  86.         {
  87.             if (this.OpenConnection(q) == true)
  88.             {
  89.                 string query = "TRUNCATE table subspace_bz_arenalist";
  90.                 MySqlCommand cmd = new MySqlCommand(query, connection);
  91.                 //Execute command
  92.                 cmd.ExecuteNonQuery();
  93.  
  94.                 for (int i = 0; i < MasterList.Count; i += 1)
  95.                 {
  96.                     cmd = new MySqlCommand("INSERT INTO subspace_bz_arenalist (playername,status,frequency) VALUES('" + MasterList[i].PlayerName + "', '" + (int)MasterList[i].CurrentShip + "', '" + (int)MasterList[i].Freq + "')", connection);
  97.                     cmd.ExecuteNonQuery();
  98.                 }
  99.  
  100.                 q.Enqueue(msg.arena("Database Initiate success."));
  101.             }
  102.         }
  103.  
  104.         //open connection to database
  105.         public bool OpenConnection(Queue<EventArgs> q)
  106.         {
  107.             try
  108.             {
  109.                 connection.Open();
  110.                 return true;
  111.             }
  112.             catch (MySqlException ex)
  113.             {
  114.                 //When handling errors, you can your application's response based
  115.                 //on the error number.
  116.                 //The two most common error numbers when connecting are as follows:
  117.                 //0: Cannot connect to server.
  118.                 //1045: Invalid user name and/or password.
  119.                 switch (ex.Number)
  120.                 {
  121.                     case 0:
  122.                         q.Enqueue(msg.arena("Cannot connect to server.  Contact administrator"));
  123.                         break;
  124.  
  125.                     case 1045:
  126.                         q.Enqueue(msg.arena("Invalid username/password, please try again"));
  127.                         break;
  128.                     default:
  129.                         q.Enqueue(msg.arena("Error: Num[" + ex.Number + "]"));
  130.                         break;
  131.                 }
  132.                 return false;
  133.             }
  134.         }
  135.         //Close connection
  136.         public bool CloseConnection(Queue<EventArgs> q)
  137.         {
  138.             try
  139.             {
  140.                 connection.Close();
  141.                 q.Enqueue(msg.arena("Connection Closed."));
  142.                 return true;
  143.             }
  144.             catch (MySqlException ex)
  145.             {
  146.                 q.Enqueue(msg.arena(ex.Message));
  147.                 return false;
  148.             }
  149.         }
  150.     }
  151. }
Advertisement
Add Comment
Please, Sign In to add comment