Quote:
Originally Posted by xBlackPlagu3x
Can NEVER go wrong with flat-file. If I knew how, I would try out Jagex's "database" storage and use a cache system/flat-file.
I heard that the majority of games are now using MsSQL but I could've heard false information, who knows.
|
MSSQL is awesome, here is a wrapper I did some time ago. I'm sure it could have been done a lot better.
Code:
public class MssqlCommand
{
public MssqlCommand(string ConnectionString, string Table)
{
m_table = Table;
m_constring = ConnectionString;
Parameters = new List<MssqlParameter>();
}
private string m_table;
private List<MssqlParameter> Parameters;
private string m_constring;
public MssqlCommand Insert()
{
StringBuilder str = new StringBuilder();
str.Append("INSERT INTO ");
str.Append(m_table);
str.Append(" (");
foreach (MssqlParameter param in Parameters)
{
str.Append(param.Column);
str.Append(", ");
}
str.Length -= 2;
str.Append(") VALUES (");
foreach (MssqlParameter param in Parameters)
{
str.Append("@");
str.Append(param.Column);
str.Append(", ");
}
str.Length -= 2;
str.Append(")");
string command = str.ToString();
SqlConnection conn = new SqlConnection(m_constring);
SqlCommand comm = new SqlCommand(command, conn);
foreach (MssqlParameter param in Parameters)
{
comm.Parameters.Add("@" + param.Column, param.Type).Value = param.Value;
}
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch
{
}
finally
{
conn.Close();
}
return this;
}
public MssqlCommand Insert(MssqlParameter param)
{
StringBuilder str = new StringBuilder();
str.Append("INSERT INTO ");
str.Append(m_table);
str.Append(" (");
str.Append(param.Column);
str.Append(") VALUES (@");
str.Append(param.Column);
str.Append(")");
string command = str.ToString();
SqlConnection conn = new SqlConnection(m_constring);
SqlCommand comm = new SqlCommand(command, conn);
comm.Parameters.Add("@" + param.Column, param.Type).Value = param.Value;
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch
{
}
finally
{
conn.Close();
}
return this;
}
public MssqlCommand Insert(string Column, object Value, System.Data.SqlDbType Type)
{
StringBuilder str = new StringBuilder();
str.Append("INSERT INTO ");
str.Append(m_table);
str.Append(" (");
str.Append(Column);
str.Append(") VALUES (@");
str.Append(Column);
str.Append(")");
string command = str.ToString();
SqlConnection conn = new SqlConnection(m_constring);
SqlCommand comm = new SqlCommand(command, conn);
comm.Parameters.Add("@" + Column, Type).Value = Value;
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch
{
}
finally
{
conn.Close();
}
return this;
}
public object Read(MssqlParameter Select, string Where, string Equal)
{
SqlConnection conn = new SqlConnection(m_constring);
StringBuilder str = new StringBuilder();
str.Append("SELECT ");
str.Append(Select.Column);
str.Append(" FROM ");
str.Append(m_table);
str.Append(" WHERE ");
str.Append(Where);
str.Append(" = ");
str.Append(Equal);
string command = str.ToString();
SqlCommand comm = new SqlCommand(command, conn);
object Ret = null;
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
Ret = reader[Select.Column];
reader.Close();
}
conn.Close();
return Ret;
}
public object Read(string Select, string Where, string Equal)
{
SqlConnection conn = new SqlConnection(m_constring);
StringBuilder str = new StringBuilder();
str.Append("SELECT ");
str.Append(Select);
str.Append(" FROM ");
str.Append(m_table);
str.Append(" WHERE ");
str.Append(Where);
str.Append(" = ");
str.Append(Equal);
string command = str.ToString();
SqlCommand comm = new SqlCommand(command, conn);
object Ret = null;
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
Ret = reader[Select];
reader.Close();
}
conn.Close();
return Ret;
}
public MssqlCommand Update(MssqlParameter param, string Where, string Equal)
{
StringBuilder str = new StringBuilder();
str.Append("UPDATE ");
str.Append(m_table);
str.Append(" SET ");
str.Append(param.Column);
str.Append(" = @");
str.Append(param.Column);
str.Append(" WHERE ");
str.Append(Where);
str.Append(" = ");
str.Append(Equal);
string command = str.ToString();
SqlConnection conn = new SqlConnection(m_constring);
SqlCommand comm = new SqlCommand(command, conn);
comm.Parameters.Add("@" + param.Column, param.Type).Value = param.Value;
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch
{
}
finally
{
conn.Close();
}
return this;
}
public MssqlCommand Update(string Column, object Value, System.Data.SqlDbType Type, string Where, string Equal)
{
StringBuilder str = new StringBuilder();
str.Append("UPDATE ");
str.Append(m_table);
str.Append(" SET ");
str.Append(Column);
str.Append(" = @");
str.Append(Column);
str.Append(" WHERE ");
str.Append(Where);
str.Append(" = ");
str.Append(Equal);
string command = str.ToString();
SqlConnection conn = new SqlConnection(m_constring);
SqlCommand comm = new SqlCommand(command, conn);
comm.Parameters.Add("@" + Column, Type).Value = Value;
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch
{
}
finally
{
conn.Close();
}
return this;
}
public void AddParameter(string _Column, object _Value, System.Data.SqlDbType _Type)
{
Parameters.Add(new MssqlParameter()
{
Value = _Value,
Type = _Type,
Column = _Column
});
}
}
Code:
public class MssqlParameter
{
public object Value;
public System.Data.SqlDbType Type;
public string Column;
}