• 通过实体对像动态生成SQL语句


    using System;
    using System.Data;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Reflection;
    using System.Text;
    using Microsoft.CSharp;
    using System.CodeDom.Compiler;
    using WebApplication1;

    /// <summary>
    /// Summary description for Public_Interface_Function
    /// </summary>
    public class Public_Interface_Function
    {
        public MYSQL_SQLDB Mysql_DB = new MYSQL_SQLDB();
        /// <summary>
        /// SQL 语句字符文本;
        /// </summary>
        public String SQL_Str = "";
        /// <summary>
        /// 表名称公用变量
        /// </summary>
        public String Table_Name = "";
        /// <summary>
        /// 控件标签
        /// </summary>
        public String Controls_Label = "";
        /// <summary>
        /// 对象属性标签
        /// </summary>
        public String Property_Label = "";
        /// <summary>
        /// 对象字段标签
        /// </summary>
        public String Fields_Label = "";
        /// <summary>
        /// 控件前缀变量
        /// </summary>
        public String Controls_Prefix = "";
        /// <summary>
        /// 对象属性前缀变量
        /// </summary>
        public String Property_Prefix = "";
        /// <summary>
        /// 对象字段前缀变量
        /// </summary>
        public String Fields_Prefix = "";
        /// <summary>
        /// 类名称前缀变量
        /// </summary>
        public String Class_Name_Prefix = "";
        /// <summary>
        /// 前缀变量
        /// </summary>
        public String Common_Prefix = "";
        /// <summary>
        /// SQL预留部分字段字符串
        /// </summary>
        public String SQL_Paras = "";
        /// <summary>
        /// 用户ID
        /// </summary>
        public String User_ID = "";
        /// <summary>
        /// 用户部门名称
        /// </summary>
        public String User_Depart_Name = "";
        /// <summary>
        /// 用户部门ID
        /// </summary>
        public String User_Depart_ID = "";
        /// <summary>
        /// 用户部门编号
        /// </summary>
        public String User_CoCode = "";
        /// <summary>
        /// 部门班次
        /// </summary>
        public String User_ShiftID = "";
        /// <summary>
        /// 用户权限名称
        /// </summary>
        public String USer_Grant_Name = "";
        /// <summary>
        /// 用户权限ID
        /// </summary>
        public String User_Grant_ID = "";
        /// <summary>
        /// 用户添加权限
        /// </summary>
        public String User_Allowadd = "";
        /// <summary>
        /// 用户编辑权限
        /// </summary>
        public String User_Allowedit = "";
        /// <summary>
        /// 用户权限扩展
        /// </summary>
        public String User_Allowexp = "";
        /// <summary>
        /// 用户状态
        /// </summary>
        public String User_Status = "";
        /// <summary>
        /// 用户岗位编号
        /// </summary>
        public String User_GroupID = "";


     public Public_Interface_Function()
     {
      //
      // TODO: Add constructor logic here
      //
     }
        /// <summary>
        /// 泛型获取SQL  INSERT字符串
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="md">对象类型参数</param>
        /// <returns>返回SQL INSERT语句;调用方法:  </returns>
        public String SQLSTR_INSERT_Builder<T>(T md)
        {
            String SQL_STR_INSERT_HEADER = "insert  into mytablename(";
            string SQL_STR_INSERT_FIELDS = "";
            string SQL_STR_INSERT_VALUES = "";
            string SQL_STR = "NULL";
            Type type = md.GetType();
            String str = type.Name.ToString();
            if (Table_Name.ToString().Trim().Length < 2)
            {
                String[] myarr;
                myarr = str.Split('_');
                Table_Name = myarr[myarr.Length - 1].ToString();
            }
           
            Common_Prefix=Table_Name+"_";
            SQL_STR_INSERT_HEADER = SQL_STR_INSERT_HEADER.Replace("mytablename", Table_Name.ToString());

            object obj = Activator.CreateInstance(type);
            PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo p in props)
            {
                if (p.GetValue(md, null).ToString().Trim().Length > 0)
                {
                    SQL_STR_INSERT_FIELDS = SQL_STR_INSERT_FIELDS + p.Name.ToString().Replace(Common_Prefix.ToString(),"") + ",";
                    SQL_STR_INSERT_VALUES = SQL_STR_INSERT_VALUES + "', '" + p.GetValue(md, null).ToString();
                }

            }
            if (SQL_STR_INSERT_FIELDS.ToString().Trim().Length > 3)
            {
                SQL_STR = SQL_STR_INSERT_HEADER + SQL_STR_INSERT_FIELDS.Substring(0, SQL_STR_INSERT_FIELDS.Length - 1) + ")values(" + SQL_STR_INSERT_VALUES.Substring(2, SQL_STR_INSERT_VALUES.Length - 2) + "')";
            }
            return SQL_STR;
        }
        /// <summary>
        /// 通过泛型动态获取SQL  SELECT字符串
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="md">对象类型实例</param>
        /// <returns>返回SQL SELECT语句;调用方法: </returns>
        public String SQLSTR_SELECT_Builder<T>(T md)
        {
            String SQL_STR_INSERT_HEADER = "select  ";
            string SQL_STR_INSERT_FIELDS = "";
            string SQL_STR_INSERT_VALUES = "";
            string SQL_STR = "NULL";
            Type type = md.GetType();
            if (Table_Name.ToString().Trim().Length < 2)
            {
                String str = type.Name.ToString();
                String[] myarr;
                myarr = str.Split('_');
                Table_Name = myarr[myarr.Length - 1].ToString();
            }
            SQL_STR_INSERT_HEADER = SQL_STR_INSERT_HEADER.Replace("mytablename", Table_Name.ToString());

            object obj = Activator.CreateInstance(type);
            PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
           

            Common_Prefix = Table_Name + "_";
            foreach (PropertyInfo p in props)
            {
                if (p.GetValue(md, null).ToString().Trim().Length > 0)
                {
                    SQL_STR_INSERT_FIELDS = SQL_STR_INSERT_FIELDS + p.Name.ToString().Replace(Common_Prefix.ToString(),"") + "  ,";
                    SQL_STR_INSERT_VALUES = SQL_STR_INSERT_VALUES + p.Name.ToString().Replace(Common_Prefix.ToString(), "") + "='" + p.GetValue(md, null).ToString() + "',";
                }

            }
            if (SQL_STR_INSERT_FIELDS.ToString().Trim().Length > 3)
            {
                SQL_STR = SQL_STR_INSERT_HEADER + SQL_STR_INSERT_FIELDS.Substring(0, SQL_STR_INSERT_FIELDS.Length - 1) + "  from tablename where " + SQL_STR_INSERT_VALUES.Substring(0, SQL_STR_INSERT_VALUES.Length - 1);
            }
            return SQL_STR;
        }
        /// <summary>
        /// 通过泛型动态获取SQL  UPDATE字符串
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="md">对象类型实例</param>
        /// <param name="SQL_CASE">SQL更新条件</param>
        /// <returns>返回SQL UPDATE语句;调用方法:  </returns>
        public String SQLSTR_UPDATE_Builder<T>(T md, string SQL_CASE)
        {
            String SQL_STR_UPDATE_HEADER = "UPDATE  MYTABLENAME  SET   ";
            string SQL_STR_UPDATE_FIELDS = "";
            string SQL_STR_UPDATE_VALUES = "";
            string SQL_STR = "NULL";
            SQL_STR_UPDATE_FIELDS = SQL_CASE;
            Type type = md.GetType();
            String str = type.Name.ToString();
            if (Table_Name.ToString().Trim().Length < 2)
            {
                String[] myarr;
                myarr = str.Split('_');
                Table_Name = myarr[myarr.Length - 1].ToString();
            }


            Common_Prefix = Table_Name + "_";
            SQL_STR_UPDATE_HEADER = SQL_STR_UPDATE_HEADER.Replace("MYTABLENAME", Table_Name.ToString());

            object obj = Activator.CreateInstance(type);
            PropertyInfo[] props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo p in props)
            {
                if (p.GetValue(md, null).ToString().Trim().Length > 0)
                {

                    SQL_STR_UPDATE_VALUES = SQL_STR_UPDATE_VALUES + p.Name.ToString().Replace(Common_Prefix.ToString(), "") + "='" + p.GetValue(md, null).ToString() + "',";
                }

            }

            if (SQL_STR_UPDATE_FIELDS.ToString().Trim().Length > 3)
            {
                SQL_STR = SQL_STR_UPDATE_HEADER + SQL_STR_UPDATE_VALUES.Substring(0, SQL_STR_UPDATE_VALUES.Length - 1) + "    where " + SQL_STR_UPDATE_FIELDS.ToString();
            }
            else
            {
                SQL_STR = "";
            }
            return SQL_STR;
        }
        /// <summary>
        /// 通过DATATABLE参数为指定类型对象赋值(为指定类型对象属性赋值)
        /// </summary>
        /// <typeparam name="T">指定类型</typeparam>
        /// <param name="dt">DATATABLE参数</param>
        /// <returns>返回已经赋值的指定对象实例;调用方法: </returns>
        public T SET_Property_Value_FOR_OBJECT_BY_DT<T>(DataTable dt)
        {
            System.Type Object_Type = typeof(T);//获取指定名称的类型

            String str =typeof(T).GetType().Name.ToString();
            if (Table_Name.ToString().Trim().Length < 2)
            {
                String[] myarr;
                myarr = str.Split('_');
                Table_Name = myarr[myarr.Length - 1].ToString();
            }

            Common_Prefix = Table_Name + "_";
            object Object_Instance = Activator.CreateInstance(Object_Type, null);//创建指定类型实例
            PropertyInfo[] fields = Object_Instance.GetType().GetProperties();//获取指定对象的所有公共属性
            object obj = Activator.CreateInstance(Object_Type, null);
            if (dt.Rows.Count == 1)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (PropertyInfo t in fields)
                        {
                            if (dc.ColumnName == t.Name.ToString().Replace(Common_Prefix.ToString(), ""))
                            {
                                t.SetValue(obj, dr[dc.ColumnName], null);//给对象赋值
                                continue;
                            }
                            
                        }

                    }
                }

            }
            return (T)obj;
        }
        /// <summary>
        /// 通过泛型方法的DATATABLE参数  为指定类型的对象赋值(为指定类型对象属性赋值)
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="dt">数据表</param>
        /// <param name="Class_name">对象类型名称</param>
        /// <returns>返回指定类型对象;调用方法: </returns>
        public T SET_Property_Value_FOR_OBJECT_BY_ClassName_And_Dt<T>(DataTable dt, string Class_name)
        {
            System.Type Object_Type = System.Type.GetType(Class_name);//获取指定名称的类型
            String str = typeof(T).GetType().Name.ToString();
            if (Table_Name.ToString().Trim().Length < 2)
            {
                String[] myarr;
                myarr = str.Split('_');
                Table_Name = myarr[myarr.Length - 1].ToString();
            }

            Common_Prefix = Table_Name + "_";
            object Object_Instance = Activator.CreateInstance(Object_Type, null);//创建指定类型实例
            PropertyInfo[] fields = Object_Instance.GetType().GetProperties();//获取指定对象的所有公共属性
            object obj = Activator.CreateInstance(Object_Type, null);
            if (dt.Rows.Count == 1)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (PropertyInfo t in fields)
                        {
                            if (dc.ColumnName == t.Name.ToString().Replace(Common_Prefix.ToString(), ""))
                            {
                                t.SetValue(obj, dr[dc.ColumnName], null);//给对象赋值
                                continue;
                            }
                            
                        }

                    }
                }

            }
            return (T)obj;
        }
        /// <summary>
        /// 通过DATATABLE和对象实例参数 为对象赋值(为指定类型对象属性赋值)
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="dt">DATATABLE 类型参数</param>
        /// <param name="Entry_Object">对象实例</param>
        /// <returns>返回指定类型对象实例;调用方法: </returns>
        public T SET_Property_Value_FOR_OBJECT_BY_Object_And_Dt<T>(DataTable dt, T Entry_Object)
        {
            Type  Object_Type= Entry_Object.GetType();//获取指定名称的类型
            object Object_Instance = Activator.CreateInstance(Object_Type, null);//创建指定类型实例
            PropertyInfo[] fields = Object_Instance.GetType().GetProperties();//获取指定对象的所有公共属性
            object obj = Activator.CreateInstance(Object_Type, null);
            String str = typeof(T).GetType().Name.ToString();
            if (Table_Name.ToString().Trim().Length < 2)
            {
                String[] myarr;
                myarr = str.Split('_');
                Table_Name = myarr[myarr.Length - 1].ToString();
            }

            Common_Prefix = Table_Name + "_";
            if (dt.Rows.Count == 1)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (PropertyInfo t in fields)
                        {
                            if (dc.ColumnName == t.Name.ToString().Replace(Common_Prefix.ToString(), ""))
                            {
                                t.SetValue(obj, dr[dc.ColumnName], null);//给对象赋值
                                continue;
                            }
                            
                        }

                    }
                }

            }
            return (T)obj;
        }
        /// <summary>
        /// 通过DATATABLE类型参数为指定类型对象字段赋值
        /// </summary>
        /// <typeparam name="T">指定类型</typeparam>
        /// <param name="dt">DATDTABLE参数</param>
        /// <returns>返回指定类型对象;调用方法: </returns>
        public T SET_Fieldinfo_Value_FOR_OBJECT_BY_Dt<T>(DataTable dt)
        {
            Type Object_Type = typeof(T);//获取指定名称的类型
            object Object_Instance = Activator.CreateInstance(Object_Type, null);//创建指定类型实例
            FieldInfo[] fields = Object_Instance.GetType().GetFields();//获取指定对象的所有公共属性
            object obj = Activator.CreateInstance(Object_Type, null);
            if (dt.Rows.Count == 1)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (FieldInfo f in fields)
                        {
                            if (dc.ColumnName == f.Name)
                            {
                                f.SetValue(obj, dr[dc.ColumnName.ToString()].ToString());//给对象赋值
                                continue;
                            }
                            
                        }

                    }
                }

            }
            return (T)obj;
        }
        /// <summary>
        /// 通过DATATABLE数据参数和指定实例类型参数来对实体类型参数赋值(为指定类型对象字段赋值)
        /// </summary>
        /// <typeparam name="T">指定类型</typeparam>
        /// <param name="dt">DATATABLE数据参数</param>
        /// <param name="Entry_Object">指定类型参数</param>
        /// <returns>返回赋值完毕后的指定类型对象;调用方法: </returns>
        public T SET_Fieldinfo_Value_FOR_OBJECT_BY_Object_AND_Dt<T>(DataTable dt, T Entry_Object)
        {
            Type Object_Type = Entry_Object.GetType();//获取指定名称的类型
            object Object_Instance = Activator.CreateInstance(Object_Type, null);//创建指定类型实例
             FieldInfo [] fields = Object_Instance.GetType().GetFields();//获取指定对象的所有公共属性
            object obj = Activator.CreateInstance(Object_Type, null);
            if (dt.Rows.Count == 1)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (FieldInfo f in fields)
                        {
                            if (dc.ColumnName == f.Name)
                            {
                                f.SetValue(obj, dr[dc.ColumnName]);//给对象赋值
                                continue;
                            }
                            
                        }

                    }
                }

            }
            return (T)obj;
        }
        /// <summary>
        /// 通过DATATABLE数据参数和指定实例类型名称参数来对实体类型参数赋值(为指定类型对象字段赋值)
        /// </summary>
        /// <typeparam name="T">指定实例类型</typeparam>
        /// <param name="dt">DATATABLE数据参数</param>
        /// <param name="Class_Name">指定实例类型名称</param>
        /// <returns>返回赋值完毕后的指定类型对象;调用方法: </returns>
        public T SET_Fieldinfo_Value_FOR_OBJECT_BY_Class_Name_And_Dt<T>(DataTable dt, String Class_Name)
        {
            System.Type Object_Type = System.Type.GetType(Class_Name);//获取指定名称的类型
            object Object_Instance = Activator.CreateInstance(Object_Type, null);//创建指定类型实例
            FieldInfo[] fields = Object_Instance.GetType().GetFields();//获取指定对象的所有公共属性
            object obj = Activator.CreateInstance(Object_Type, null);
            if (dt.Rows.Count == 1)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (FieldInfo f in fields)
                        {
                            if (dc.ColumnName == f.Name)
                            {
                                f.SetValue(obj, dr[dc.ColumnName]);//给对象赋值
                                continue;
                            }
                            
                        }

                    }
                }

            }
            return (T)obj;
        }
        /// <summary>
        /// 通过指定类型对象,为页面容器中的控件(TextBox)赋值;
        /// </summary>
        /// <typeparam name="T">指定类型</typeparam>
        /// <param name="md">指定类型参数</param>
        /// <param name="controls_content">容器控件名</param>
        public void Set_Value_FOR_TextBox_By_Object<T>(T md, Control controls_content)
        {
            Type type = md.GetType();
            object obj = Activator.CreateInstance(type);
            FieldInfo[] props = type.GetFields();
            foreach (FieldInfo p in props)
            {
                foreach (Control ctrl in controls_content.Controls)
                {
                    if (ctrl is TextBox)
                    {
                        String str = ctrl.ID.ToString();
                        Controls_Prefix = "";
                        String[] myarr;
                        myarr = str.Split('_');
                        Controls_Prefix = myarr[myarr.Length - 1].ToString();

                        if (p.Name.ToString().Replace(Common_Prefix.ToString(), "") == Controls_Prefix.ToString())
                        {

                            ((TextBox)ctrl).Text = p.GetValue(md).ToString();
                        }
                    }
                }

            }
        }
        /// <summary>
        /// 通过DATATABLE参数和控件容器为空件容器中的TEXTBOX赋值;
        /// </summary>
        /// <param name="dt">DATATABLE参数</param>
        /// <param name="controls_content">容器控件</param>
        public void Set_Value_FOR_TextBox_By_Dt(DataTable dt, Control controls_content)
        {
            if (dt.Rows.Count == 1)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (Control ctrl in controls_content.Controls)
                        {
                            if (ctrl is TextBox)
                            {
                                String str = ctrl.ID.ToString();
                                Controls_Prefix = "";
                                String[] myarr;
                                myarr = str.Split('_');
                                Controls_Prefix = myarr[myarr.Length - 1].ToString();

                                if (dc.ColumnName.ToString() == Controls_Prefix.ToString())
                                {

                                    ((TextBox)ctrl).Text = dr[dc.ColumnName].ToString();
                                    continue;
                                }
                            }
                        }
                    }
                }
            }

        }

        public void Set_Value_FOR_Label_By_Dt(DataTable dt, Control controls_content)
        {
            if (dt.Rows.Count == 1)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    foreach (DataColumn dc in dt.Columns)
                    {
                        foreach (Control ctrl in controls_content.Controls)
                        {
                            if (ctrl is Label)
                            {
                                String str = ctrl.ID.ToString();
                                Controls_Prefix = "";
                                String[] myarr;
                                myarr = str.Split('_');
                                Controls_Prefix = myarr[myarr.Length - 1].ToString();

                                if (dc.ColumnName.ToString() == Controls_Prefix.ToString())
                                {

                                    ((Label)ctrl).Text = dr[dc.ColumnName].ToString();
                                    continue;
                                }
                            }
                        }
                    }
                }
            }

        }

        public void Set_Value_FOR_Label_By_Object<T>(T md, Control controls_content)
        {
            Type type = md.GetType();
            object obj = Activator.CreateInstance(type);
            FieldInfo [] props = type.GetFields();
            foreach (FieldInfo p in props)
            {
                foreach (Control ctrl in controls_content.Controls)
                {
                    if (ctrl is Label)
                    {
                        String str = ctrl.ID.ToString();
                        Controls_Prefix = "";
                        String[] myarr;
                        myarr = str.Split('_');
                        Controls_Prefix = myarr[myarr.Length - 1].ToString();

                        if (p.Name.ToString() == Controls_Prefix.ToString())
                        {

                            ((Label)ctrl).Text = p.GetValue(obj).ToString();
                        }
                    }
                }

            }
        }
    /// <summary>
    /// 生成类中属性和字段的流代码
    /// </summary>
    /// <param name="propertyName">字段名称</param>
    /// <returns>返回文本字符串;调用方法: </returns>
      public String Create_Class_Property_Fields_String(String Prefix,String propertyName)
        {
            StringBuilder sbProperty = new StringBuilder();
            sbProperty.Append(" /*<br>*"+ "对应数据库中表“"+Prefix.ToString()+"”中的字段:"+propertyName.ToString()+"<BR>*/<BR>" +"public   String   " + propertyName + "   = \"\";\n<br>");
            sbProperty.Append(" /*<br>*" + "对应数据库中表“" + Prefix.ToString() + "”中的字段:" + propertyName.ToString() + "<BR>*/<BR>" + " public   String   " + Prefix.ToString() + propertyName + "\n");
            sbProperty.Append(" {<br>\n");
            sbProperty.Append("<br> get{ <br>  return   " + propertyName + ";<br>}   \n");
            sbProperty.Append("<br> set{ <br>  " + propertyName + "   =   value;  <br> }\n");
            sbProperty.Append(" <br>}<br>");
            return sbProperty.ToString();
        }

      public String Create_Class_Body( String Prefix) {
          MYSQL_SQLDB SQLDB = new MYSQL_SQLDB();
          DataTable dt = new DataTable();
          String CLASS_BODY = "";
          dt = SQLDB.Get_DataTable_By_ExecuteSQL("SELECT column_name,data_type,character_maximum_length,numeric_precision,numeric_scale,is_nullable,extra ,column_default,column_comment FROM Information_schema.columns WHERE table_Name='" + Prefix.ToString() + "'");
          foreach (DataRow dr in dt.Rows)
          {
              String dc = dr["column_name"].ToString();

              CLASS_BODY = CLASS_BODY + Create_Class_Property_Fields_String((Prefix.ToString().Trim() + "_").ToString().Trim(), dc.ToString());

          }
          return CLASS_BODY;
      }

      public void Create_MODEL_DAL_BLL_Class(String path, String Proj_Profix, String TableName)
      {
        

          file_operate fp = new file_operate(path, Proj_Profix, TableName);
          String CLASS_BODY = "";
          CLASS_BODY= Create_Class_Body(TableName);
          fp.Create_Model_Cs_File(CLASS_BODY);
          fp.Create_DAL_Cs_File("");
          fp.Create_BLL_Cs_File("");
      }
    /// <summary>
      /// 通过页面控件(TextBox)为指定对象类型实例对象赋值
    /// </summary>
    /// <typeparam name="T">指定对象类型</typeparam>
    /// <param name="Entry_Object">实例对象</param>
    /// <param name="controls_content">控件容器名称</param>
      /// <returns>返回赋值后的指定类型;调用方法: </returns>
      public T SET_Fieldinfo_Value_FOR_OBJECT_BY_Controls<T>(T Entry_Object, Control controls_content)
      {
          Type Object_Type = Entry_Object.GetType();//获取指定名称的类型
          object Object_Instance = Activator.CreateInstance(Object_Type, null);//创建指定类型实例
          FieldInfo[] fields = Object_Instance.GetType().GetFields();//获取指定对象的所有公共属性
          object obj = Activator.CreateInstance(Object_Type, null);
            foreach (Control ctrl in controls_content.Controls)
              {
                  foreach (FieldInfo p in fields)
          {
          
                  if (ctrl is TextBox)
                  {
                      String str = ctrl.ID.ToString();
                      Controls_Prefix = "";
                      String[] myarr;
                      myarr = str.Split('_');
                      Controls_Prefix = myarr[myarr.Length - 1].ToString();

                      if (p.Name.ToString() == Controls_Prefix.ToString() && ((TextBox)ctrl).Text.ToString().Trim().Length > 0)
                      {
                          p.SetValue(obj, ((TextBox)ctrl).Text.ToString());//给对象赋值
                          continue;  // ((TextBox)ctrl).Text = p.GetValue(md, null).ToString();
                      }
                      
                  }
              }

          }
          return (T)obj;
      }
    /// <summary>
      /// 通过页面控件(TextBox)为指定对象类型实例对象赋值
    /// </summary>
      /// <typeparam name="T">指定对象类型</typeparam>
      /// <param name="controls_content">控件容器名称</param>
    /// <returns>返回赋值后的指定对象</returns>
      public T SET_Fieldinfo_Value_FOR_OBJECT_BY_Controls<T>( Control controls_content)
      {
          Type Object_Type = typeof(T);//获取指定名称的类型
          object Object_Instance = Activator.CreateInstance(Object_Type, null);//创建指定类型实例
          FieldInfo[] fields = Object_Instance.GetType().GetFields();//获取指定对象的所有公共属性
          object obj = Activator.CreateInstance(Object_Type, null);
          foreach (Control ctrl in controls_content.Controls)
          {
              foreach (FieldInfo p in fields)
              {

                  if (ctrl is TextBox)
                  {
                      String str = ctrl.ID.ToString();
                      Controls_Prefix = "";
                      String[] myarr;
                      myarr = str.Split('_');
                      Controls_Prefix = myarr[myarr.Length - 1].ToString();


                      if (p.Name.ToString() == Controls_Prefix.ToString() && ((TextBox)ctrl).Text.ToString().Trim().Length > 0)
                      {
                          p.SetValue(obj, ((TextBox)ctrl).Text.ToString());//给对象赋值
                          continue;  // ((TextBox)ctrl).Text = p.GetValue(md, null).ToString();
                      }
                      
                  }
              }

          }
          return (T)obj;
      }
    }

  • 相关阅读:
    poj3181(Dollar Dayz)
    poj3666(Making the Grade)
    poj2392(Space Elevator)
    hdu5288(OO’s Sequence)
    hdu5289(Assignment)
    快学scala
    Spark Checkpointing
    Spark Performance Tuning (性能调优)
    Spark Memory Tuning (内存调优)
    Sparkstreaming and Kafka
  • 原文地址:https://www.cnblogs.com/greefsong/p/2575661.html
Copyright © 2020-2023  润新知