本文整理汇总了C#中db.Database类的典型用法代码示例。如果您正苦于以下问题:C# Database类的具体用法?C# Database怎么用?C# Database使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Database类属于db命名空间,在下文中一共展示了Database类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HandleRequest
public void HandleRequest(HttpListenerContext context)
{
NameValueCollection query;
using (StreamReader rdr = new StreamReader(context.Request.InputStream))
query = HttpUtility.ParseQueryString(rdr.ReadToEnd());
using (var db = new Database())
{
var acc = db.Verify(query["guid"], query["password"]);
byte[] status;
if (acc == null)
{
status = Encoding.UTF8.GetBytes("<Error>Bad login</Error>");
}
else
{
var cmd = db.CreateQuery();
cmd.CommandText = "UPDATE accounts SET password=SHA1(@password) WHERE [email protected];";
cmd.Parameters.AddWithValue("@accId", acc.AccountId);
cmd.Parameters.AddWithValue("@password", query["newPassword"]);
if (cmd.ExecuteNonQuery() > 0)
status = Encoding.UTF8.GetBytes("<Success />");
else
status = Encoding.UTF8.GetBytes("<Error>Internal error</Error>");
}
context.Response.OutputStream.Write(status, 0, status.Length);
}
}
示例2: HandleRequest
public override void HandleRequest(HttpListenerContext context)
{
NameValueCollection query;
using (var rdr = new StreamReader(context.Request.InputStream))
query = HttpUtility.ParseQueryString(rdr.ReadToEnd());
using (var db = new Database(Program.Settings.GetValue("conn")))
{
Account acc = db.Verify(query["guid"], query["password"]);
byte[] status;
if (acc == null)
status = Encoding.UTF8.GetBytes("<Error>Account credentials not valid</Error>");
else
{
try
{
status = Encoding.UTF8.GetBytes(db.GetGuildBoard(acc));
}
catch (Exception e)
{
status = Encoding.UTF8.GetBytes("<Error>" + e.Message + "</Error>");
}
}
context.Response.OutputStream.Write(status, 0, status.Length);
}
}
示例3: HandleRequest
protected override void HandleRequest()
{
StreamWriter wtr = new StreamWriter(Context.Response.OutputStream);
if (Query.AllKeys.Length > 0)
{
using (Database db = new Database())
{
Account acc = db.Verify(Query["guid"], Query["password"], Program.GameData);
if (CheckAccount(acc, db, false))
{
foreach (ItemCostItem item in Prices)
{
if (item.Type == Query["skinType"] && item.Puchasable == 1)
{
if (!acc.OwnedSkins.Contains(int.Parse(Query["skinType"])))
{
acc.OwnedSkins.Add(int.Parse(Query["skinType"]));
db.UpdateCredit(acc, -item.Price);
MySqlCommand cmd = db.CreateQuery();
cmd.CommandText =
"UPDATE accounts SET [email protected] WHERE [email protected] AND password=SHA1(@password)";
cmd.Parameters.AddWithValue("@ownedSkins",
Utils.GetCommaSepString(acc.OwnedSkins.ToArray()));
cmd.Parameters.AddWithValue("@uuid", Query["guid"]);
cmd.Parameters.AddWithValue("@password", Query["password"]);
if (cmd.ExecuteNonQuery() == 0)
wtr.WriteLine("<Error>Unable to purchase</Error>");
}
}
}
}
}
}
}
示例4: HandleRequest
protected override void HandleRequest()
{
using (var db = new Database())
{
if (Account == null) BadLogin();
else
{
var cmd = db.CreateQuery();
cmd.CommandText = "SELECT fame FROM stats WHERE [email protected];";
cmd.Parameters.AddWithValue("@accId", Account.AccountId);
if ((int)cmd.ExecuteScalar() < 5000) WriteErrorLine("Not enough fame");
else
{
cmd = db.CreateQuery();
cmd.CommandText = "UPDATE stats set fame = MIN(fame - 5000, 0) WHERE [email protected];";
cmd.Parameters.AddWithValue("@accId", Account.AccountId);
if (cmd.ExecuteNonQuery() > 0)
{
cmd = db.CreateQuery();
cmd.CommandText = "UPDATE accounts SET maxCharSlot = maxCharSlot + 1 WHERE [email protected];";
cmd.Parameters.AddWithValue("@accId", Account.AccountId);
if (cmd.ExecuteNonQuery() > 0) Success();
else WriteErrorLine("Internal Error");
}
else WriteErrorLine("Internal Error");
}
}
}
}
示例5: HandleRequest
public override void HandleRequest(HttpListenerContext context)
{
NameValueCollection query;
using (var rdr = new StreamReader(context.Request.InputStream))
query = HttpUtility.ParseQueryString(rdr.ReadToEnd());
using (var db = new Database(Program.Settings.GetValue("conn")))
{
Account acc = db.Verify(query["guid"], query["password"]);
byte[] status;
if (acc == null)
status = Encoding.UTF8.GetBytes("<Error>Account credentials not valid</Error>");
else
{
MySqlCommand cmd = db.CreateQuery();
cmd.CommandText = @"DELETE FROM characters WHERE accId = @accId AND charId = @charId;";
cmd.Parameters.AddWithValue("@accId", acc.AccountId);
cmd.Parameters.AddWithValue("@charId", query["charId"]);
if (cmd.ExecuteNonQuery() > 0)
status = Encoding.UTF8.GetBytes("<Success />");
else
status = Encoding.UTF8.GetBytes("<Error>Internal Error</Error>");
}
context.Response.OutputStream.Write(status, 0, status.Length);
}
}
示例6: HandleRequest
public void HandleRequest(HttpListenerContext context)
{
NameValueCollection query;
using (var rdr = new StreamReader(context.Request.InputStream))
query = HttpUtility.ParseQueryString(rdr.ReadToEnd());
using (var db = new Database())
{
List<ServerItem> filteredServers = null;
Account a = db.Verify(query["guid"], query["password"]);
if (a != null)
{
if (a.Banned)
{
filteredServers = YoureBanned();
}
else
{
filteredServers = GetServersForRank(a.Rank);
}
}
else
{
filteredServers = GetServersForRank(0);
}
var chrs = new Chars
{
Characters = new List<Char>(),
NextCharId = 2,
MaxNumChars = 1,
Account = db.Verify(query["guid"], query["password"]),
Servers = filteredServers
};
Account dvh = null;
if (chrs.Account != null)
{
db.GetCharData(chrs.Account, chrs);
db.LoadCharacters(chrs.Account, chrs);
chrs.News = db.GetNews(chrs.Account);
dvh = chrs.Account;
}
else
{
chrs.Account = Database.CreateGuestAccount(query["guid"]);
chrs.News = db.GetNews(null);
}
var ms = new MemoryStream();
var serializer = new XmlSerializer(chrs.GetType(),
new XmlRootAttribute(chrs.GetType().Name) {Namespace = ""});
var xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
xws.Encoding = Encoding.UTF8;
XmlWriter xtw = XmlWriter.Create(context.Response.OutputStream, xws);
serializer.Serialize(xtw, chrs, chrs.Namespaces);
db.Dispose();
}
}
示例7: GetChars
public Chars GetChars(string guid, string password, XmlData data)
{
using (var db = new Database())
{
Account a = db.Verify(guid, password, data);
if (a != null)
{
if (a.Banned)
return null;
}
Chars chrs = new Chars
{
Characters = new List<Char>(),
NextCharId = 2,
MaxNumChars = 1,
Account = a,
};
db.GetCharData(chrs.Account, chrs);
db.LoadCharacters(chrs.Account, chrs);
chrs.News = db.GetNews(Program.GameData, chrs.Account);
chrs.OwnedSkins = Utils.GetCommaSepString(chrs.Account.OwnedSkins.ToArray());
return chrs;
}
}
示例8: IsUserInLegends
public bool IsUserInLegends()
{
//Week
using (var db = new Database())
{
var cmd = db.CreateQuery();
cmd.CommandText = "SELECT * FROM death WHERE (time >= DATE_SUB(NOW(), INTERVAL 1 WEEK)) ORDER BY totalFame DESC LIMIT 10;";
using (var rdr = cmd.ExecuteReader())
while (rdr.Read())
if (rdr.GetString("accId") == AccountId) return true;
}
//Month
using (var db = new Database())
{
var cmd = db.CreateQuery();
cmd.CommandText = "SELECT * FROM death WHERE (time >= DATE_SUB(NOW(), INTERVAL 1 MONTH)) ORDER BY totalFame DESC LIMIT 10;";
using (var rdr = cmd.ExecuteReader())
while (rdr.Read())
if (rdr.GetString("accId") == AccountId) return true;
}
//All Time
using (var db = new Database())
{
var cmd = db.CreateQuery();
cmd.CommandText = "SELECT * FROM death WHERE TRUE ORDER BY totalFame DESC LIMIT 10;";
using (var rdr = cmd.ExecuteReader())
while (rdr.Read())
if (rdr.GetString("accId") == AccountId) return true;
}
return false;
}
示例9: HandleRequest
protected override void HandleRequest()
{
using (var db = new Database())
{
var acc = db.Verify(Query["guid"], Query["password"]);
byte[] status;
if (acc == null)
{
status = Encoding.UTF8.GetBytes("<Error>Bad login</Error>");
}
else
{
var cmd = db.CreateQuery();
object exescala;
cmd.CommandText = "SELECT COUNT(name) FROM accounts WHERE [email protected];";
cmd.Parameters.AddWithValue("@name", Query["name"]);
exescala = cmd.ExecuteScalar();
if (int.Parse(exescala.ToString()) > 0)
status = Encoding.UTF8.GetBytes("<Error>Duplicated name</Error>");
else
{
cmd = db.CreateQuery();
cmd.CommandText = "UPDATE accounts SET [email protected], namechosen=TRUE WHERE [email protected];";
cmd.Parameters.AddWithValue("@accId", acc.AccountId);
cmd.Parameters.AddWithValue("@name", Query["name"]);
if (cmd.ExecuteNonQuery() != 0)
status = Encoding.UTF8.GetBytes("<Success />");
else
status = Encoding.UTF8.GetBytes("<Error>Internal error</Error>");
}
}
Context.Response.OutputStream.Write(status, 0, status.Length);
}
}
示例10: CheckAccount
public bool CheckAccount(Account acc, Database db, bool checkAccInUse=true)
{
if (acc == null && !String.IsNullOrWhiteSpace(Query["password"]))
{
WriteErrorLine("Account credentials not valid");
return false;
}
else if (acc == null && String.IsNullOrWhiteSpace(Query["password"]))
return true;
if (acc.Banned)
{
using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
wtr.WriteLine("<Error>Account under maintenance</Error>");
Context.Response.Close();
return false;
}
if (checkAccInUse)
{
int? timeout = 0;
if (db.CheckAccountInUse(acc, ref timeout))
{
if (timeout != null)
using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
wtr.WriteLine("<Error>Account in use. (" + timeout + " seconds until timeout.)</Error>");
else
using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
wtr.WriteLine("<Error>Account in use.</Error>");
Context.Response.Close();
return false;
}
}
return true;
}
示例11: GetGlobalNews
private List<globalNews_struct> GetGlobalNews(Database db)
{
List<globalNews_struct> ret = new List<globalNews_struct>();
var cmd = db.CreateQuery();
cmd.CommandText = "SELECT * FROM globalNews WHERE endTime >= now();";
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
ret.Add(new globalNews_struct
{
slot = rdr.GetInt32("slot"),
linkType = rdr.GetInt32("linkType"),
title = rdr.GetString("title"),
image = rdr.GetString("image"),
priority = rdr.GetInt32("priority"),
linkDetail = rdr.GetString("linkDetail"),
platform = rdr.GetString("platform"),
startTime = long.Parse(Database.DateTimeToUnixTimestamp(rdr.GetDateTime("startTime")).ToString() + "000"),
endTime = long.Parse(Database.DateTimeToUnixTimestamp(rdr.GetDateTime("endTime")).ToString() + "000")
});
}
}
return ret;
}
示例12: HandleRequest
protected override void HandleRequest()
{
using (Database db = new Database())
{
Account acc = db.GetAccount(Query["accountId"], Program.GameData);
Char chr = db.LoadCharacter(acc, int.Parse(Query["charId"]));
MySqlCommand cmd = db.CreateQuery();
cmd.CommandText = @"SELECT time, killer, firstBorn FROM death WHERE [email protected] AND [email protected];";
cmd.Parameters.AddWithValue("@accId", Query["accountId"]);
cmd.Parameters.AddWithValue("@charId", Query["charId"]);
int time;
string killer;
bool firstBorn;
using (MySqlDataReader rdr = cmd.ExecuteReader())
{
rdr.Read();
time = Database.DateTimeToUnixTimestamp(rdr.GetDateTime("time"));
killer = rdr.GetString("killer");
firstBorn = rdr.GetBoolean("firstBorn");
}
using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
wtr.Write(chr.FameStats.Serialize(Program.GameData, acc, chr, time, killer, firstBorn));
}
}
示例13: FreeDatabase
public void FreeDatabase(Database db)
{
lock (requestLock)
{
databases[db] = true;
}
}
示例14: HandleRequest
public void HandleRequest(HttpListenerContext context)
{
NameValueCollection query;
using (var rdr = new StreamReader(context.Request.InputStream))
query = HttpUtility.ParseQueryString(rdr.ReadToEnd());
using (var db = new Database())
{
Account acc = db.Verify(query["guid"], query["password"]);
byte[] status;
if (acc == null)
status = Encoding.UTF8.GetBytes("<Error>Bad login</Error>");
else
{
try
{
status =
Encoding.UTF8.GetBytes(db.HttpGetGuildMembers(Convert.ToInt32(query["num"]),
Convert.ToInt32(query["offset"]), acc));
}
catch
{
status = Encoding.UTF8.GetBytes("<Error>Guild member error</Error>");
}
}
context.Response.OutputStream.Write(status, 0, status.Length);
context.Response.Close();
}
}
示例15: HandleRequest
protected override void HandleRequest()
{
using (Database db = new Database())
{
try
{
Account acc = db.Verify(Query["guid"], Query["password"], Program.GameData);
string classType = Program.GameData.ObjectTypeToId[ushort.Parse(Query["classType"])];
if (CheckAccount(acc, db))
{
int price = Program.GameData.ObjectDescs[ushort.Parse(Query["classType"])].UnlockCost;
if (acc.Credits < price) return;
db.UpdateCredit(acc, -price);
MySqlCommand cmd = db.CreateQuery();
cmd.CommandText =
"UPDATE unlockedclasses SET available='unrestricted' WHERE [email protected] AND [email protected];";
cmd.Parameters.AddWithValue("@accId", acc.AccountId);
cmd.Parameters.AddWithValue("@class", classType);
cmd.ExecuteNonQuery();
}
}
catch (Exception e)
{
using (StreamWriter wtr = new StreamWriter(Context.Response.OutputStream))
{
wtr.WriteLine("<Error>Invalid classType");
wtr.Flush();
wtr.WriteLine(e);
}
}
}
}