using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using HomeService.Models; using HomeService.Utility; using System.Text; using Microsoft.Practices.EnterpriseLibrary.Data; using HcUtility.Comm; using HomeService.DBHelper; namespace HomeService { public class HomeDBHelper { #region Inquery DataList public static void Main() { string gid = ""; string companyid = ""; string templetid = ""; string linkurl = ""; string sql = ""; List<MsTempletStructure> modInquire = new List<MsTempletStructure>(); modInquire = GetSQL(); //得到公司用户 List<Employee> employee = new List<Employee>(); employee = GetUserInfo(); foreach (Employee _emp in employee) { foreach (MsTempletStructure _templet in modInquire) { gid = _templet.GID; companyid = _templet.COMPANYID; templetid = _templet.TEMPLETID; linkurl = _templet.LINKURL; sql = _templet.SQL; sql = sql.Replace("\" + userid + \"", _emp.GID); sql = "select (" + sql + ") as result"; DataTable dt = SqlHelper.ExecuteSql(sql); CacheHelper.Set(gid + "|" + companyid + "|" + templetid, dt, DateTime.Now.AddSeconds(120)); } } } private static List<MsTempletStructure> GetSQL() { StringBuilder sql = new StringBuilder(); sql.AppendLine("select B.GID,B.COMPANYID,LINKURL,[SQL] from main_module as A "); sql.AppendLine("left join user_templet as B on A.USERTEMPLETID=B.TEMPLETID "); sql.AppendLine("where B.LINKURL != '' and B.LINKURL is not NULL and B.[SQL] != '' and B.[SQL] is not NULL "); return SetSQL(sql); } private static List<MsTempletStructure> SetSQL(StringBuilder sql) { var list = new List<MsTempletStructure>(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql.ToString())) { while (reader.Read()) { MsTempletStructure data = new MsTempletStructure(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.COMPANYID = Convert.ToString(reader["COMPANYID"]); data.TEMPLETID = Convert.ToString(reader["TEMPLETID"]); data.LINKURL = Convert.ToString(reader["LINKURL"]); data.SQL = Convert.ToString(reader["SQL"]); #endregion list.Add(data); } reader.Close(); } return list; } private static List<Employee> GetUserInfo() { DataTable dt = new DataTable(); StringBuilder sql = new StringBuilder(); sql.AppendLine("select GID from [user] "); return SetUserInfo(sql); } private static List<Employee> SetUserInfo(StringBuilder sql) { var list = new List<Employee>(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql.ToString())) { while (reader.Read()) { Employee data = new Employee(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.USERNAME = Convert.ToString(reader["USERNAME"]); data.CODENAME = Convert.ToString(reader["CODENAME"]); data.PASSWORD = Convert.ToString(reader["PASSWORD"]); #endregion list.Add(data); } reader.Close(); } return list; } #endregion } }