public classsqlserver : IDataBase
{internalSqlConnection Link;publicsqlserver()
{
}public sqlserver(stringConnectionStrings)
{this.Link = null;
CreateDataBaseByConnectionStringsName(ConnectionStrings);
}///
///创建数据库连接,传入配置文件字段名///
/// 数据库配置字段
///
private void CreateDataBaseByConnectionStringsName(stringConnectionStringsName)
{
SqlConnection link= newSqlConnection();string ConnectionStrings =ConfigurationManager.ConnectionStrings[ConnectionStringsName].ToString();
link.ConnectionString=ConnectionStrings;try{
link.Open();this.Link =link;
}catch (Exception e) { throw newException(e.Message); }
}public voidCloseDataBase(System.Data.Common.DbConnection Link)
{
SqlConnection Link_=(SqlConnection)Link;if (Link_ != null && Link_.State ==ConnectionState.Open)
{
Link_.Close();
}
}public System.Data.Common.DbCommand GetSqlStringCommand(stringquery)
{
SqlCommand cmd= null;if (Link != null && query != "")
cmd= newSqlCommand(query, Link);returncmd;
}public void AddInParameter(System.Data.Common.DbCommand cmd, string ParmsName, System.Data.DbType ParmsType, objectvalue)
{try{
SqlParameter parameter= newSqlParameter(ParmsName, ParmsType);
parameter.Direction=ParameterDirection.Input;if (value == null)
parameter.Value=DBNull.Value;elseparameter.Value=value;
cmd.Parameters.Add(parameter);
}catch (Exception e) { throw newException(e.Message); }
}publicSystem.Data.DataSet ExecuteDataSet(System.Data.Common.DbCommand cmd_)
{
DataSet ds= null;
SqlCommand cmd= cmd_ asSqlCommand;try{
SqlDataAdapter adapter= newSqlDataAdapter(cmd);
ds= newDataSet();
adapter.Fill(ds);
cmd.Parameters.Clear();
}catch (Exception e) { throw newException(e.Message); }returnds;
}public intExecuteNonQuery(System.Data.Common.DbCommand cmd)
{int returnCount = 0;try{
returnCount=cmd.ExecuteNonQuery();
}catch (Exception e) { throw newException(e.Message); }returnreturnCount;
}///
///创建 DbType 类型///
/// System数据类型
///
privateDbType BuildDbType(Type t)
{switch(t.Name)
{case "Byte":returnDbType.Byte;case "Byte[]":returnDbType.Binary;case "Int32":returnDbType.Int32;case "Int64":returnDbType.Int64;case "UInt16":returnDbType.UInt16;case "UInt32":returnDbType.UInt32;case "UInt64":returnDbType.UInt64;case "Decimal":returnDbType.Decimal;case "Double":returnDbType.Double;case "Guid":returnDbType.Guid;case "Xml":returnDbType.Xml;case "Object":returnDbType.Binary;case "Boolean":returnDbType.Boolean;case "String":returnDbType.String;case "DateTime":returnDbType.DateTime;default:returnDbType.String;
}
}public void AddOutParameter(System.Data.Common.DbCommand cmd, string ParmsName, DbType ParmsType, objectvalue)
{try{
SqlParameter parameter= newSqlParameter(ParmsName, ParmsType);
parameter.Direction=ParameterDirection.Output;if (value == null)
parameter.Value=DBNull.Value;elseparameter.Value=value;
cmd.Parameters.Add(parameter);
}catch (Exception e) { throw newException(e.Message); }
}public System.Data.Common.DbCommand GetStoredProcCommand(stringProcName)
{
SqlCommand cmd= null;if (Link != null && ProcName != "")
{
cmd= newSqlCommand(ProcName, Link);
cmd.CommandType=CommandType.StoredProcedure;
}returncmd;
}public object GetParameterValueOrKeyValue(System.Data.Common.DbCommand cmd, string ParmsName = "")
{
Dictionary dic = null;try{
dic= new Dictionary();foreach (SqlParameter parameter incmd.Parameters)
{if (parameter.Direction ==ParameterDirection.Output)
{
dic.Add(parameter.ParameterName, parameter.Value);
}
}if (dic != null && dic.Count > 0)
{if (ParmsName != "" &&dic.ContainsKey(ParmsName))returndic[ParmsName];
}elsedic= null;
}catch (Exception e) { throw newException(e.Message); }returndic;
}
}//end