using Easy4net.DBUtility; using System; using System.Collections.Generic; namespace Easy4net.Common { /// /// 数据库关键字检查帮助类 /// public static class DbKeywords { /// /// MySQL中关键字集合 /// private static Dictionary m_MySQL = new Dictionary(); /// /// MSSQL中关键字集合 /// private static Dictionary m_MSSQL = new Dictionary(); /// /// 初始化MySQL中关键字集合 /// private static void InitMySQL() { if (m_MySQL.Count == 0) { m_MySQL.Add("order", "`order`"); m_MySQL.Add("desc", "`desc`"); m_MySQL.Add("key", "`key`"); } } /// /// 初始化MSSQL中关键字集合 /// private static void InitMSSQL() { if (m_MSSQL.Count == 0) { m_MSSQL.Add("order", "[order]"); m_MSSQL.Add("desc", "[desc]"); m_MSSQL.Add("key", "[key]"); m_MSSQL.Add("text", "[text]"); m_MSSQL.Add("limit", "[limit]"); m_MSSQL.Add("offset", "[offset]"); m_MSSQL.Add("password", "[password]"); } } /// /// 格式化列名,对列名与数据库关键字相同的进行格式化处理 /// /// /// /// public static string FormatColumnName(string columnName, DatabaseType dbType) { InitMySQL(); InitMSSQL(); string colName = columnName.ToLower(); if ((dbType == DatabaseType.SQLITE || dbType == DatabaseType.MYSQL) && m_MySQL.ContainsKey(colName)) { return m_MySQL[colName]; } if (dbType == DatabaseType.SQLSERVER && m_MSSQL.ContainsKey(colName)) { return m_MSSQL[colName]; } if (dbType == DatabaseType.ACCESS && m_MSSQL.ContainsKey(colName)) { return m_MSSQL[colName]; } return columnName; } } }