zoukankan      html  css  js  c++  java
  • 将一个DataTable转换成列表

    ---------------------------------方法名------------------------------------------------------------------------------------------------------

     /// <summary>
            /// 将一个DataTable转换成列表
            /// </summary>
            /// <typeparam name="T">实体对象的类型</typeparam>
            /// <param name="dt">要转换的DataTable</param>
            /// <returns>static</returns>
            public  List<T> DataTableToEntityList<T>(DataTable dt)
            {
                List<T> entiyList = new List<T>();

                Type entityType = typeof(T);
                PropertyInfo[] entityProperties = entityType.GetProperties();

                foreach (DataRow row in dt.Rows)
                {
                    T entity = Activator.CreateInstance<T>();

                    foreach (PropertyInfo propInfo in entityProperties)
                    {
                        if (dt.Columns.Contains(propInfo.Name))
                        {
                            if (!row.IsNull(propInfo.Name))
                            {
                                propInfo.SetValue(entity, row[propInfo.Name], null);
                            }
                        }
                    }

                    entiyList.Add(entity);
                }

                return entiyList;
            }

    --------------------------实现Datable 作为填充参数---------------------------------------------------------------------------------

     public DataTable GetTable(string strSql)
            {
                SqlConnection con = new SqlConnection("Data Source=ZYSOFT;Initial Catalog= Work; Integrated Security = True");
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }

                //if (sqlConn.State == ConnectionState.Closed && sqlConn.State == ConnectionState.Closed)        //若原来的状态为关闭且当前连接未打开
                //{
                //    sqlConn.Open();
                //}
                SqlCommand cmd = new SqlCommand(strSql, con);
                DataTable data = new DataTable();
                SqlDataReader reader = cmd.ExecuteReader();
                data.Load(reader);
                return data;
            }

    ------------------------------------构建 一个实体类---------------------------------------------------

     public class Receipt
        {
            private int taskID;

            public int TaskID
            {
                get { return taskID; }
                set { taskID = value; }
            }

            private string receiptID;

            public string ReceiptID
            {
                get { return receiptID; }
                set { receiptID = value; }
            }

            private string receiptName;

            public string ReceiptName
            {
                get { return receiptName; }
                set { receiptName = value; }
            }
        -----------------------------------------在webservice 中返回------------------------------------------------------

     [WebMethod]
            public List<Receipt> GetDataTableToEntityList()
            {
             
                    DataService s = new DataService();
                    SqlHelper helper = new SqlHelper();
                    DataTable dt = helper.GetTable(" select * from dbo.Receipt");
                    return s.DataTableToEntityList<Receipt>(dt);
            }

    ---------------------------------------------------在前台页面调用 -------------------------------------------------------

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    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;

    namespace WebApplication1
    {
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    GetData();
                }
            }

            public void GetData()
            {
                localhost.Service1 s = new WebApplication1.localhost.Service1();
                s.GetDataTableToEntityList();
                for (int i = 0; i < 10; i++)
                {
                    this.ListBox1.Items.Add(s.GetDataTableToEntityList()[i].ReceiptID + s.GetDataTableToEntityList()[i].TaskID + s.GetDataTableToEntityList()[i].ReceiptName);

                }
            }


        }
    }

  • 相关阅读:
    20199319 2019-2020-2 《网络攻防实践》第七周作业
    《访问控制策略描述和应用》阅读总结
    密码学基础学习-序列密码
    密码学基础学习-1
    《一种普适计算下的访问控制策略》阅读总结
    20199319 2019-2020-2 《网络攻防实践》第五周作业
    《访问控制策略描述语言与策略冲突研究》阅读总结
    20199319 2019-2020-2 《网络攻防实践》第四周作业
    20199319 2019-2020-2 《网络攻防实践》第三周作业
    记录旧手机(米6)安装Linux(Ubuntu16.04)踩过的坑
  • 原文地址:https://www.cnblogs.com/dullbaby/p/2949924.html
Copyright © 2011-2022 走看看