zoukankan      html  css  js  c++  java
  • C#功能块代码

    //dtPerson 为表,FName为表里面的字段
    string[] personArry = dtPerson.AsEnumerable().Select(d => d.Field<string>("FName")).ToArray();
    1.将datatable转换为数组。
     public static D Mapper<D, S>(S s)
            {
                D d = Activator.CreateInstance<D>(); //构造新实例
                try
                {
                    var Types = s.GetType();//获得类型  
                    var Typed = typeof(D);
                    foreach (PropertyInfo sp in Types.GetProperties())//获得类型的属性字段  
                    {
                        foreach (PropertyInfo dp in Typed.GetProperties())
                        {
                            if (dp.Name == sp.Name && dp.PropertyType == sp.PropertyType && dp.Name != "Error" && dp.Name != "Item")//判断属性名是否相同  
                            {
                                dp.SetValue(d, sp.GetValue(s, null), null);//获得s对象属性的值复制给d对象的属性  
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return d;
            }
    
    //使用示例
      PTLLocalDB.T_SAP_PurchaseHeaderInfo PTLHeader = new PTLLocalDB.T_SAP_PurchaseHeaderInfo();
    
                        PTLHeader = PTLStartSAPFlow.Mapper<PTLLocalDB.T_SAP_PurchaseHeaderInfo, LocalDB.T_SAP_PurchaseHeaderInfo>(header);
    两个对象,相同属性间赋值
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace AirTicketWinform
    {
       public class ModelConvertHelper<T> where   T : new()
        {
            public static List<T> ConvertToModel(DataTable dt)    
             {    
                // 定义集合    
                 List<T> ts = new List<T>(); 
         
                // 获得此模型的类型   
                 Type type = typeof(T);      
                string tempName = "";      
          
                foreach (DataRow dr in dt.Rows)      
                 {    
                     T t = new T();     
                    // 获得此模型的公共属性      
                     PropertyInfo[] propertys = t.GetType().GetProperties(); 
                    foreach (PropertyInfo pi in propertys)      
                     {      
                         tempName = pi.Name;  // 检查DataTable是否包含此列    
       
                        if (dt.Columns.Contains(tempName))      
                         {      
                            // 判断此属性是否有Setter      
                            if (!pi.CanWrite) continue;         
       
                            object value = dr[tempName];      
                            if (value != DBNull.Value)      
                                 pi.SetValue(t, value, null);  
                         }     
                     }      
                     ts.Add(t);      
                 }     
                return ts;     
             }     
        }
    }
    
    调用方式 MFG_DAILY_MANPOWER 为model 类名
     DataTable showTable = new DataTable();
                    showTable.Columns.Add("divsion",typeof(string));
                    showTable.Columns.Add("DepartCode", typeof(string));
    
                    DataRow dr = showTable.NewRow();
                    dr["divsion"] = "A";
                    dr["DepartCode"] = "DA1";
                    showTable.Rows.InsertAt(dr,0);
                    //string result = mfgBLL.DataTableToJson(showTable);
                    //string[] arr = showTable.AsEnumerable().Select(d=>d.).ToArray();
                    List<MFG_DAILY_MANPOWER> ls = ModelConvertHelper<MFG_DAILY_MANPOWER>.ConvertToModel(showTable);
    
                    return Json(new { data = ls, msg = "上次成功" }, JsonRequestBehavior.AllowGet);
    DataTable 转List
  • 相关阅读:
    [oracle]ORA-38707: Media recovery is not enabled.
    [ORACLE]oracle 如何解决高水平线问题
    [ORACLE]Oracle ASH报告生成和性能分析
    [ORACLE]oracle 表连接的几种方式
    [ORACLE] ORACLE 查看执行计划 的方式
    [ORACLE] ORACLE访问数据的方法
    [ORACLE]ORACLE19 client 安装
    [ORACLE]查看SQL绑定变量具体值 查看SQL绑定变量值
    [ORACLE]锁 enq: TX
    将通过find命令找到的文件拷贝到一个新的目录中
  • 原文地址:https://www.cnblogs.com/gudaozi/p/11618574.html
Copyright © 2011-2022 走看看