using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections;
/// <summary>
/// Database 的摘要说明
/// </summary>
public class Database
{
protected SqlConnection Connection;
protected string ConnectionString;
//public string err;
public Database()
{
//string s = ConfigurationSettings.AppSettings["t"].ToString();//取AppSettings节点下key为t的值
//string s=System.Web.Configuration.WebConfigurationManager.ConnectionStrings["GameConnectionString"].ConnectionString.ToString();//取web.config里面connectionStrings的连接字符串;
ConnectionString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Project;pwd=sa;uid=sa";
}
//Open方法根据ConnectionString属性,创建新的数据库连接对象,并赋予Connection属性。
protected void Open()
{
if (Connection == null)
{
Connection = new SqlConnection(ConnectionString);
}
if (Connection.State.Equals(ConnectionState.Closed))
{
Connection.Open();
}
}
//Colse方法关闭数据库连接
public void Close()
{
if (Connection != null)
{
Connection.Close();
}
}
//ExecuteSQL方法执行非查询SQL命令,并返回执行SQL所影响的数据记录数目
public int ExecuteSQL(string SqlString)
{
int count = -1;
Open();
try
{
SqlCommand cmd = new SqlCommand(SqlString, Connection);
count = cmd.ExecuteNonQuery();
}
catch
{
count = -1;
}
finally
{
Close();
}
return count;
}
//GetDataRow方法接收一个SQL查询命令(select语句),然后返回查询得到的一行数据对象DataRow
public DataRow GetDataRow(string SqlString)
{
DataSet dataset = GetDataSet(SqlString);
dataset.CaseSensitive = false;
if (dataset.Tables[0].Rows.Count > 0)
{
return dataset.Tables[0].Rows[0];
}
else
{
return null;
}
}
//GetDataSet方法接受一个SQL查询命令(select语句),然后返回查询得到的数据集DataSet
public DataSet GetDataSet(string SqlString)
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
Close();
return dataset;
}
~Database()
{
try
{
if (Connection != null)
Connection.Close();
}
catch { }
try
{
Dispose();
}
catch { }
}
public void Dispose()
{
if (Connection != null)
{
Connection.Dispose();
Connection = null;
}
}
//该方法用于执行多条SQL查询语句,并返回成功与否
public bool ExecuteSQL(ArrayList SqlStrings)
{
bool success = true;
Open();
SqlTransaction trans = Connection.BeginTransaction();
SqlCommand cmd = Connection.CreateCommand();
cmd.Connection = Connection;
cmd.Transaction = trans;
try
{
foreach (string str in SqlStrings)
{
cmd.CommandText = str;
cmd.ExecuteNonQuery();
}
trans.Commit();
}
catch (Exception err1)
{
//err = err1.Message.ToString();
success = false;
trans.Rollback();
}
finally
{
Close();
}
return success;
}
//该方法根据SQL语句返回一个SqlDataReader
public SqlDataReader GetDataReader(string SqlString)
{
Open();
SqlCommand cmd = new SqlCommand(SqlString, Connection);
return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
//该方法根据表名和一个哈希
public bool Insert(string TableName, Hashtable Cols)
{
int Count = 0;
if (Cols.Count <= 0)
{
return true;
}
string Fields = "(";
string Values = " values(";
foreach (DictionaryEntry item in Cols)
{
if (Count != 0)
{
Fields += ",";
Values += ",";
}
Fields += item.Key.ToString();
Values += item.Value.ToString();
Count++;
}
Fields += ")";
Values += ")";
string SqlString = "Insert into " + TableName + Fields + Values;
return Convert.ToBoolean(ExecuteSQL(SqlString));
}
public bool Update(string TableName, Hashtable Cols, string Where)
{//更新数据库表数据
int Count = 0;
if (Cols.Count <= 0)
{
return true;
}
string Fields = "";
foreach (DictionaryEntry item in Cols)
{
if (Count != 0)
{
Fields += ",";
}
Fields += item.Key.ToString();
Fields += "=";
Fields += item.Value.ToString();
Count++;
}
Fields += " ";
string SqlString = "Update " + TableName + " set " + Fields + Where;
return Convert.ToBoolean(ExecuteSQL(SqlString));
}
}