From 383715715ca8a0650fcaf07da5c5c936f0d90f6e Mon Sep 17 00:00:00 2001 From: Twitchy Date: Thu, 28 Jul 2011 13:08:49 +1200 Subject: [PATCH] Adds ReadTable function to DBTools --- TShockAPI/DB/DBTools.cs | 41 +++++++++++++++++++++++++++++++++++++++++ TShockAPI/DB/DbExt.cs | 1 + 2 files changed, 42 insertions(+) diff --git a/TShockAPI/DB/DBTools.cs b/TShockAPI/DB/DBTools.cs index f274d0be..4cec3753 100644 --- a/TShockAPI/DB/DBTools.cs +++ b/TShockAPI/DB/DBTools.cs @@ -160,6 +160,47 @@ namespace TShockAPI.DB com.ExecuteNonQuery(); } } + + public static List ReadTable(string tablename, string getcolumn, List WhereStatements) + { + StringBuilder sb = new StringBuilder(); + List ReturnedValues = new List(); + + sb.Append("SELECT * FROM " + tablename + " "); + + using (var com = database.CreateCommand()) + { + //Where Statement (if any) + if (WhereStatements.Count > 0) + { + sb.Append("WHERE "); + int count = 0; + + foreach (ColumnData columnname in WhereStatements) + { + count++; + if (WhereStatements.Count != count) + { + sb.Append(columnname.Name + " =" + columnname.Value + " AND "); + } + else + { + sb.Append(columnname.Name + " =" + columnname.Value); + } + } + } + + com.CommandText = sb.ToString(); + + using (var reader = com.ExecuteReader()) + { + while (reader.Read()) + ReturnedValues.Add(reader.Get(getcolumn)); + } + } + + return ReturnedValues; + } } public class Column diff --git a/TShockAPI/DB/DbExt.cs b/TShockAPI/DB/DbExt.cs index 20d4a74c..269fec1c 100644 --- a/TShockAPI/DB/DbExt.cs +++ b/TShockAPI/DB/DbExt.cs @@ -64,6 +64,7 @@ namespace TShockAPI.DB {typeof(decimal), (s, i) => s.GetDecimal(i)}, {typeof(float), (s, i) => s.GetFloat(i)}, {typeof(double), (s, i) => s.GetDouble(i)}, + {typeof(object), (s, i) => s.GetValue(i)}, }; public static T Get(this IDataReader reader, string column)