Example #1
0
        /// <summary>
        /// 创建访问excel的实例
        /// </summary>
        /// <returns></returns>
        private DataAccessLibrary GetDal()
        {
            const string sql = "SELECT TOP 1 ConnString FROM   Manage_DataBase WHERE  (DataBaseID = 6)";

            string excelPath = Dal.DalMetadata.ExecuteString(sql);

            string            cnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + excelPath + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
            DataAccessLibrary acc      = DalFactory.CreateDal(cnString, "System.Data.OleDb");

            return(acc);
        }
        //获取数据访问函数库的实例
        private DataAccessLibrary CreateDalbyDataBaseID(string dataBaseID)
        {
            //数据库的连接字符串
            const string sqlDataBase = @"SELECT   ConnString, Provider
                            FROM      Manage_DataBase
                            WHERE   (DataBaseID = {0})";

            string[] cnInfo = Dal.DalMetadata.ExecuteStringsBySingleRow(string.Format(sqlDataBase, dataBaseID));

            DataAccessLibrary dal = DalFactory.CreateDal(cnInfo[0], cnInfo[1]);

            return(dal);
        }
        protected override void OnPreLoad(EventArgs e)
        {
            base.OnPreLoad(e);

            HttpCookie ck = Request.Cookies["DataBaseID"];

            string excelPath = "";

            if (ck == null)
            {
                //没有cookies
            }


            string sql = "";

            if (!Page.IsPostBack)
            {
                //获取选择文档的下拉列表
                sql = @"SELECT  DataBaseID AS id, DataTitle AS txt
                                FROM    Manage_DataBase
                                WHERE     (KindID = 3) AND (DataName = N'{0}')";

                string dataName = ck.Value;

                if (!Functions.IsInt(dataName))
                {
                    dataName = "1";
                }

                lstData.DataSource = Dal.DalMetadata.ExecuteFillDataTable(string.Format(sql, dataName));
                lstData.DataBind();
            }

            sql = "SELECT TOP 1 ConnString FROM   Manage_DataBase WHERE  (DataBaseID = {0})";

            excelPath = Dal.DalMetadata.ExecuteString(string.Format(sql, this.lstData.SelectedValue));

            //const string cnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|客户项目数据库设计.xls; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
            //string cnString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + excelPath + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
            string cnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + excelPath + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

            _acc = DalFactory.CreateDal(cnString, "System.Data.OleDb");

            Pager1.Dal = _acc;

            _dalCustomer = Dal.DalCustomer;
        }
        protected void LstDataSelectedIndexChanged(object sender, EventArgs e)
        {
            const string sql = "SELECT TOP 1 ConnString FROM   Manage_DataBase WHERE  (DataBaseID = {0})";

            string excelPath = Dal.DalMetadata.ExecuteString(string.Format(sql, this.lstData.SelectedValue));

            string cnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + excelPath + "; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

            _acc = DalFactory.CreateDal(cnString, "System.Data.OleDb");

            Pager1.Dal = _acc;

            Heidden();
            GetTableName();
            Btn_TableName.SelectedIndex = 0;
        }
Example #5
0
        //生成
        private void BtnCreate_Click(object sender, EventArgs e)
        {
            new Thread(delegate()
            {
                try
                {
                    var cm                    = ConfigurationManager.ConnectionStrings["DbContext"];
                    var dal                   = DalFactory.CreateDal(cm.ProviderName);
                    var tableList             = dal.GetAllTables();
                    const string strNamespace = "Entity";

                    #region 操作控件
                    InvokeDelegate invokeDelegate = delegate
                    {
                        btnCreate.Enabled    = false;
                        progressBar1.Visible = true;
                        progressBar1.Minimum = 0;
                        progressBar1.Maximum = tableList.Count;
                        progressBar1.Value   = 0;
                    };
                    InvokeUtil.Invoke(this, invokeDelegate);
                    #endregion

                    var i = 0;
                    foreach (var table in tableList)
                    {
                        var sb = new StringBuilder();
                        //var sbExt = new StringBuilder();
                        var columnList = dal.GetAllColumns(table["table_name"]);

                        #region 原始Model
                        //sb.Append("using System;\r\n");
                        //sb.Append("using System.Collections.Generic;\r\n");
                        //sb.Append("using System.ComponentModel.DataAnnotations;");
                        //sb.Append("\r\n");
                        sb.Append("namespace " + strNamespace + "\r\n");
                        sb.Append("{\r\n");
                        sb.Append("    /// <summary>\r\n");
                        sb.Append("    /// " + table["comments"] + "\r\n");
                        sb.Append("    /// </summary>\r\n");
                        //sb.Append("    [Serializable]\r\n");
                        //sb.Append("    public partial class " + table["table_name"] + "\r\n");
                        sb.Append("    public class " + table["table_name"] + "\r\n");
                        sb.Append("    {\r\n");
                        foreach (var column in columnList)
                        {
                            var dataType = dal.ConvertDataType(column);

                            sb.Append("        /// <summary>\r\n");
                            sb.Append("        /// " + column["comments"] + "\r\n");
                            sb.Append("        /// </summary>\r\n");

                            if (column["constraint_type"] == "P")
                            {
                                sb.Append("        [System.Data.Objects.DataClasses.EdmScalarProperty(EntityKeyProperty = true, IsNullable = false)]\r\n");
                            }

                            //sb.Append("        [IsDBField]\r\n");
                            sb.Append("        public " + dataType + " " + column["columns_name"] + " { get; set; }\r\n");
                        }
                        sb.Append("    }\r\n");
                        sb.Append("}\r\n");
                        FileHelper.WriteFile(AppDomain.CurrentDomain.BaseDirectory + strNamespace, sb.ToString(), table["table_name"]);
                        #endregion

                        #region 扩展Model
                        //sbExt.Append("using System;\r\n");
                        //sbExt.Append("using System.Collections.Generic;\r\n");
                        //sbExt.Append("using System.Linq;\r\n");
                        //sbExt.Append("\r\n");
                        //sbExt.Append("namespace " + strNamespace + "\r\n");
                        //sbExt.Append("{\r\n");
                        //sbExt.Append("    /// <summary>\r\n");
                        //sbExt.Append("    /// " + table["comments"] + "\r\n");
                        //sbExt.Append("    /// </summary>\r\n");
                        //sbExt.Append("    public partial class " + table["table_name"] + "\r\n");
                        //sbExt.Append("    {\r\n");
                        //sbExt.Append("\r\n");
                        //sbExt.Append("    }\r\n");
                        //sbExt.Append("}\r\n");
                        //FileHelper.WriteFile(Application.StartupPath + "\\extmodels", sbExt.ToString(), table["table_name"]);
                        #endregion

                        #region 操作控件
                        invokeDelegate = delegate
                        {
                            progressBar1.Value = ++i;
                        };
                        InvokeUtil.Invoke(this, invokeDelegate);
                        #endregion
                    }

                    #region 操作控件
                    invokeDelegate = delegate
                    {
                        btnCreate.Enabled    = true;
                        progressBar1.Visible = false;
                        progressBar1.Value   = 0;
                    };
                    InvokeUtil.Invoke(this, invokeDelegate);
                    #endregion

                    MessageBox.Show(@"生成完成");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace);
                }
            }).Start();
        }
Example #6
0
        //生成
        private void btnCreate_Click(object sender, EventArgs e)
        {
            new Thread(new ThreadStart(delegate()
            {
                try
                {
                    IDal dal = DalFactory.CreateDal(ConfigurationManager.AppSettings["DBType"]);
                    List <Dictionary <string, string> > tableList = dal.GetAllTables();
                    string strNamespace        = ConfigurationManager.AppSettings["Namespace"];
                    string strClassTemplate    = string.Empty;
                    string strClassExtTemplate = string.Empty;
                    string strFieldTemplate    = string.Empty;
                    Regex regField             = new Regex(@"[ \t]*#field start([\s\S]*)#field end", RegexOptions.IgnoreCase);

                    #region 操作控件
                    InvokeDelegate invokeDelegate = delegate()
                    {
                        btnCreate.Enabled    = false;
                        progressBar1.Visible = true;
                        progressBar1.Minimum = 0;
                        progressBar1.Maximum = tableList.Count;
                        progressBar1.Value   = 0;
                    };
                    InvokeUtil.Invoke(this, invokeDelegate);
                    #endregion

                    #region 读取模板
                    strClassTemplate    = FileHelper.ReadFile(Application.StartupPath + "\\Template\\class.txt");
                    strClassExtTemplate = FileHelper.ReadFile(Application.StartupPath + "\\Template\\class_ext.txt");
                    Match matchField    = regField.Match(strClassTemplate);
                    if (matchField.Success)
                    {
                        strFieldTemplate = matchField.Groups[1].Value.TrimEnd(' ');
                    }
                    #endregion

                    int i = 0;
                    foreach (Dictionary <string, string> table in tableList) //遍历表
                    {
                        string tableName       = table["table_name"].ToUpper();
                        StringBuilder sbFields = new StringBuilder();
                        List <Dictionary <string, string> > columnList = dal.GetAllColumns(tableName);

                        #region 原始Model
                        string strClass = strClassTemplate.Replace("#table_comments", table["comments"]);
                        strClass        = strClass.Replace("#table_name", tableName);

                        foreach (Dictionary <string, string> column in columnList) //遍历字段
                        {
                            string data_type = dal.ConvertDataType(column);

                            string strField = strFieldTemplate.Replace("#field_comments", column["comments"]);

                            if (column["constraint_type"] != "P")
                            {
                                strField = strField.Replace("        [IsId]\r\n", string.Empty);
                            }

                            strField = strField.Replace("#data_type", data_type);
                            strField = strField.Replace("#field_name", column["columns_name"].ToUpper());

                            sbFields.Append(strField);
                        }

                        strClass = regField.Replace(strClass, sbFields.ToString());

                        FileHelper.WriteFile(Application.StartupPath + "\\Models", strClass, tableName);
                        #endregion

                        #region 扩展Model
                        string strClassExt = strClassExtTemplate.Replace("#table_comments", table["comments"]);
                        strClassExt        = strClassExt.Replace("#table_name", tableName);

                        FileHelper.WriteFile(Application.StartupPath + "\\ExtModels", strClassExt.ToString(), tableName);
                        #endregion

                        #region 操作控件
                        invokeDelegate = delegate()
                        {
                            progressBar1.Value = ++i;
                        };
                        InvokeUtil.Invoke(this, invokeDelegate);
                        #endregion
                    }

                    #region 操作控件
                    invokeDelegate = delegate()
                    {
                        btnCreate.Enabled    = true;
                        progressBar1.Visible = false;
                        progressBar1.Value   = 0;
                    };
                    InvokeUtil.Invoke(this, invokeDelegate);
                    #endregion

                    MessageBox.Show("完成");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
                }
            })).Start();
        }
Example #7
0
        //生成
        private void btnCreate_Click(object sender, EventArgs e)
        {
            new Thread(new ThreadStart(delegate()
            {
                IDal dal = DalFactory.CreateDal(ConfigurationManager.AppSettings["DBType"]);
                List <Dictionary <string, string> > tableList = dal.GetAllTables();
                string strNamespace = ConfigurationManager.AppSettings["Namespace"];

                #region 操作控件
                InvokeDelegate invokeDelegate = delegate()
                {
                    btnCreate.Enabled    = false;
                    progressBar1.Visible = true;
                    progressBar1.Minimum = 0;
                    progressBar1.Maximum = tableList.Count;
                    progressBar1.Value   = 0;
                };
                InvokeUtil.Invoke(this, invokeDelegate);
                #endregion

                int i = 0;
                foreach (Dictionary <string, string> table in tableList)
                {
                    StringBuilder sb    = new StringBuilder();
                    StringBuilder sbExt = new StringBuilder();
                    List <Dictionary <string, string> > columnList = dal.GetAllColumns(table["table_name"]);

                    #region 原始Model
                    sb.Append("using System;\r\n");
                    sb.Append("using System.Collections.Generic;\r\n");
                    sb.Append("using System.Linq;\r\n");
                    sb.Append("\r\n");
                    sb.Append("namespace " + strNamespace + "\r\n");
                    sb.Append("{\r\n");
                    sb.Append("    /// <summary>\r\n");
                    sb.Append("    /// " + table["comments"] + "\r\n");
                    sb.Append("    /// </summary>\r\n");
                    sb.Append("    [Serializable]\r\n");
                    sb.Append("    public partial class " + table["table_name"] + "\r\n");
                    sb.Append("    {\r\n");
                    foreach (Dictionary <string, string> column in columnList)
                    {
                        string data_type = dal.ConvertDataType(column);

                        sb.Append("        /// <summary>\r\n");
                        sb.Append("        /// " + column["comments"] + "\r\n");
                        sb.Append("        /// </summary>\r\n");

                        if (column["constraint_type"] == "P")
                        {
                            sb.Append("        [IsId]\r\n");
                        }

                        sb.Append("        [IsDBField]\r\n");
                        sb.Append("        public " + data_type + " " + column["columns_name"] + " { get; set; }\r\n");
                    }
                    sb.Append("    }\r\n");
                    sb.Append("}\r\n");
                    FileHelper.WriteFile(Application.StartupPath + "\\models", sb.ToString(), table["table_name"]);
                    #endregion

                    #region 扩展Model
                    sbExt.Append("using System;\r\n");
                    sbExt.Append("using System.Collections.Generic;\r\n");
                    sbExt.Append("using System.Linq;\r\n");
                    sbExt.Append("\r\n");
                    sbExt.Append("namespace " + strNamespace + "\r\n");
                    sbExt.Append("{\r\n");
                    sbExt.Append("    /// <summary>\r\n");
                    sbExt.Append("    /// " + table["comments"] + "\r\n");
                    sbExt.Append("    /// </summary>\r\n");
                    sbExt.Append("    public partial class " + table["table_name"] + "\r\n");
                    sbExt.Append("    {\r\n");
                    sbExt.Append("\r\n");
                    sbExt.Append("    }\r\n");
                    sbExt.Append("}\r\n");
                    FileHelper.WriteFile(Application.StartupPath + "\\extmodels", sbExt.ToString(), table["table_name"]);
                    #endregion

                    #region 操作控件
                    invokeDelegate = delegate()
                    {
                        progressBar1.Value = ++i;
                    };
                    InvokeUtil.Invoke(this, invokeDelegate);
                    #endregion
                }

                #region 操作控件
                invokeDelegate = delegate()
                {
                    btnCreate.Enabled    = true;
                    progressBar1.Visible = false;
                    progressBar1.Value   = 0;
                };
                InvokeUtil.Invoke(this, invokeDelegate);
                #endregion

                MessageBox.Show("完成");
            })).Start();
        }
Example #8
0
        //protected delegate void ActionToFunction(HttpContext context);
        //protected static Dictionary<string, ActionToFunction> ActionList = new Dictionary<string, ActionToFunction>();


        /// <summary>
        /// 通过实现 <see cref="T:System.Web.IHttpHandler"/> 接口的自定义 HttpHandler 启用 HTTP Web 请求的处理。
        /// </summary>
        /// <param name="context"><see cref="T:System.Web.HttpContext"/> 对象,它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Request、Response、Session 和 Server)的引用。</param>
        /// user:jyk
        /// time:2012/10/18 17:41
        public void ProcessRequest(HttpContext context)
        {
            //记录一下,不用传参数了。
            Context = context;
            //允许跨域的设置
            #region
            string webAppId = HttpContext.Current.Request.QueryString["webappid"];
            if (!string.IsNullOrEmpty(webAppId))
            {
                string url = HttpContext.Current.Request.Url.Host;

                switch (webAppId)
                {
                case "1":    //支撑平台
                    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://nature.com");
                    break;

                case "7":    //芒果网站综合管理
                    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin",
                                                           url.IndexOf("lc", System.StringComparison.Ordinal) >= 0
                                                                    ? "http://192.168.3.96:8108"
                                                                    : "http://naturemanage.517.cn/");
                    break;

                case "4":    //手机推广
                    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin",
                                                           url.IndexOf("lc", System.StringComparison.Ordinal) >= 0
                                                                   ? "http://lcmobileplat.naturefw.com"
                                                                   : "http://mobileplat.naturefw.com");
                    break;
                }

                //"http://nature.com,http://192.168.3.96:8108"
            }
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Credentials", "true");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "POST, GET,Origin, X-Requested-With, Content-Type, Accept");

            CallBack = context.Request.QueryString["callback"] ?? ""; //看看是不是跨域
            if (CallBack.Length == 0)
            {
                //不是跨域application/json
                context.Response.ContentType = "text/plain";
                //cors的方式跨域,运行访问的域名还需要处理

                context.Response.Write("{");
            }
            else
            {
                //跨域z!z\":0
                context.Response.ContentType = "application/x-javascript";
                context.Response.Write(CallBack + "({");
            }
            #endregion

            //context.Response.ContentType = "application/json";

            //要访问的数据库ID
            DataBaseID = Request["dbid"];

            if (!Functions.IsIDString(DataBaseID))
            {
                //context.Response.Write(string.IsNullOrEmpty(CallBack) ? re : string.Format("{0}({1})", CallBack, re));
                //context.Response.End();
                DataBaseID = null;
            }

            //看看是不是跨域表单post提交
            ResourceUrl = context.Request.QueryString["reurl"] ?? ""; //看看是不是跨域表单post提交

            //记录调试信息,经过了多少步骤,每个步骤用了多少毫秒
            BaseDebug = new NatureDebug {
                StartTime = DateTime.Now, DetailList = new List <NatureDebugInfo>()
            };


            DataAccessLibrary dal = DalFactory.CreateDal();
            //[Content],
            string sql = "SELECT  TOP (20) ArticleId, Category1Id, Title,  AgreeCount, OppositionCount, DiscussCount, UserHits, Hits, AddUserID, AddTime FROM blog_Article WHERE(IsDel = 0)";
            string str = dal.ManagerJson.ExecuteFillJsonByColName(sql);

            context.Response.Write(str);


            //模板模式,在子类里实现具体操作,便于流程控制
            Process();


            //流程完毕,输出json格式的debug信息
            ProcessEnd();
        }