using System; using System.Data; using System.Data.SqlClient; using System.Linq; using Easy4net.DBUtility; namespace Easy4net.Variety.MSSQL { /// /// MSSQL数据库配置类 /// public class OrmMSSQLConfig : OrmConfig { /// /// MSSQL关键字集合 /// private readonly static string[] _keyMSSQL = { "order", "desc", "key", "text", "limit", "offset", "password" }; /// /// 获取当前支持的数据库类型 /// public override DatabaseType DbType { get { return DatabaseType.SQLSERVER; } } /// /// 获取对应的数据库参数字符前缀 /// public override string DbParamChar { get { return "@"; } } /// /// 创建一个数据库参数对象 /// /// public OrmMSSQLConfig(string aConn) { this.ConnectionString = aConn; } /// /// 根据MSSQL数据库参数获取一个MSSQL的数据库参数对象 /// /// public OrmMSSQLConfig(SqlConnectionParam aPrm) { this.ConnectionString = SqlConnectionParam.GetConnectionString(aPrm); } /// /// 根据当前的全局配置获取一个MSSQL的数据库参数对象 /// public OrmMSSQLConfig() { this.ConnectionString = SqlConnectionParam.ConnectionString; } /// /// 创建一个数据库链接对象 /// /// internal override IDbConnection CreateDbConnection() { return new SqlConnection(ConnectionString); } /// /// 创建一个数据库命令对象 /// /// internal override IDbCommand CreateDbCommand() { return new SqlCommand(); } /// /// 创建数据库适配器对象 /// /// internal override IDbDataAdapter CreateDataAdapter() { return new SqlDataAdapter(); } /// /// 根据传入的命令对象创建适配器对象 /// /// /// internal override IDbDataAdapter CreateDataAdapter(IDbCommand aCmd) { return new SqlDataAdapter((SqlCommand)aCmd); } /// /// 创建数据库参数对象 /// /// public override IDbDataParameter CreateDbParameter() { return new SqlParameter(); } /// /// 检查MSSQL列名是否为数据库的关键字,是则进行格式化,否则返回原列名 /// /// /// internal override string FormatColumnName(string aColounName) { string tmp_str = aColounName.ToLower(); if (_keyMSSQL.Contains(tmp_str)) { return string.Format("[{0}]", tmp_str); } return aColounName; } /// /// 生成获取自增长列的新添加值的SQL语句 /// /// internal override string GetAutoSql() { return " SELECT scope_identity() as AutoId "; } } }