最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中泛型舉例List<T>與DataTable相互轉(zhuǎn)換

 更新時間:2022年05月11日 08:07:05   作者:springsnow  
這篇文章介紹了C#中泛型舉例List<T>與DataTable相互轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、 DataTable轉(zhuǎn)換到List<T>

/// <summary>   
/// TableToList   
/// </summary> 
public class TableListConverter<T> where T : class, new()
{
    public static IList<T> TableToList(DataTable dt)
    {

        IList<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;
                if (dt.Columns.Contains(tempName))// 檢查DataTable是否包含此列
                {
                    if (!pi.CanWrite) continue;// 判斷此屬性是否有Setter

                    object value = dr[tempName];
                    if (value != DBNull.Value)
                        pi.SetValue(t, value, null);
                }
            }
            ts.Add(t);
        }

        return ts;

    }
}

應(yīng)用:

// 獲得查詢結(jié)果 
DataTable dt = DbHelper.ExecuteDataTable("...");
// 把DataTable轉(zhuǎn)換為IList<UserInfo> 
IList<UserInfo> users = TableListConverter<UserInfo>.TableToList(dt);

二、 List<T>轉(zhuǎn)換到DataTable

/// <summary>   
/// ListToTable   
/// </summary>   
public class TableListConverter
{
    public static DataTable ListToTable<T>(IList<T> list) where T : class, new()
    {
        if (list == null) return null;
        Type type = typeof(T);
        DataTable dt = new DataTable();

        PropertyInfo[] properties = Array.FindAll(type.GetProperties(), p => p.CanRead);//判斷此屬性是否有Getter
        Array.ForEach(properties, prop => { dt.Columns.Add(prop.Name, prop.PropertyType); });//添加到列
        foreach (T t in list)
        {
            DataRow row = dt.NewRow();
            Array.ForEach(properties, prop =>
            {
                row[prop.Name] = prop.GetValue(t, null);
            });//添加到行
            dt.Rows.Add(row);
        }
        return dt;
    }
}

應(yīng)用:

//IList<UserInfo> users 
DataTable dt =TableListConverter.ListToTable(users)

到此這篇關(guān)于C#中泛型舉例List<T>與DataTable相互轉(zhuǎn)換的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#連接Oracle數(shù)據(jù)庫使用Oracle.ManagedDataAccess.dll

    C#連接Oracle數(shù)據(jù)庫使用Oracle.ManagedDataAccess.dll

    這篇文章主要介紹了C#使用Oracle.ManagedDataAccess.dll的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • C#?RabbitMQ的使用詳解

    C#?RabbitMQ的使用詳解

    本文主要介紹了C#?RabbitMQ的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • WPF自動隱藏的消息框的實例代碼

    WPF自動隱藏的消息框的實例代碼

    本文給大家介紹WPF自動隱藏的消息框?qū)嵗a,當(dāng)鼠標(biāo)放上去將一直顯示,移開動畫繼續(xù),提供normal和error兩種邊框。非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07
  • C#中判斷字符串是全角還是半角的實現(xiàn)代碼

    C#中判斷字符串是全角還是半角的實現(xiàn)代碼

    本篇文章主要是對C#中判斷字符串是全角還是半角的實現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#?wpf定義ViewModelBase進(jìn)行簡化屬性綁定

    C#?wpf定義ViewModelBase進(jìn)行簡化屬性綁定

    綁定機(jī)制是wpf的核心,也是界面獨(dú)立的根本,尤其是使用了mvvm模式,本文主要介紹了wpf如何定義ViewModelBase進(jìn)行簡化屬性綁定,需要的可以參考下
    2024-04-04
  • WPF實現(xiàn)帶篩選功能的DataGrid

    WPF實現(xiàn)帶篩選功能的DataGrid

    在默認(rèn)情況下,WPF提供的DataGrid僅擁有數(shù)據(jù)展示等簡單功能,如果要實現(xiàn)像Excel一樣復(fù)雜的篩選過濾功能,則相對比較麻煩。本文以一個簡單的小例子,簡述如何通過WPF實現(xiàn)DataGrid的篩選功能,僅供學(xué)習(xí)分享使用,如有不足之處,還請指正
    2023-03-03
  • C#代碼實現(xiàn)PDF文檔操作類

    C#代碼實現(xiàn)PDF文檔操作類

    本篇文章給大家介紹使用pdf文檔操作C#代碼,本文代碼非常簡單,代碼附有注釋,需要注意的是:需要添加itextsharp.dll引用才可以正常通過編譯,感興趣的朋友可以參考下
    2015-10-10
  • C# .NET實現(xiàn)掃描識別圖片中的文字

    C# .NET實現(xiàn)掃描識別圖片中的文字

    本文以C#及VB.NET代碼為例,介紹如何掃描并讀取圖片中的文字。文中的示例代碼介紹詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • C#?BitArray(點(diǎn)矩陣)轉(zhuǎn)換成int和string的方法實現(xiàn)

    C#?BitArray(點(diǎn)矩陣)轉(zhuǎn)換成int和string的方法實現(xiàn)

    BitArray?類管理一個緊湊型的位值數(shù)組,它使用布爾值來表示,本文主要介紹了C#?BitArray(點(diǎn)矩陣)轉(zhuǎn)換成int和string的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2022-05-05
  • 在.NET框架使用C#實現(xiàn)PDF文件轉(zhuǎn)為HTML格式的步驟

    在.NET框架使用C#實現(xiàn)PDF文件轉(zhuǎn)為HTML格式的步驟

    HTML作為一種開放標(biāo)準(zhǔn)的網(wǎng)頁標(biāo)記語言,具有跨平臺、易于瀏覽和搜索引擎友好的特性,通過將PDF文件轉(zhuǎn)換為HTML格式,我們可以更方便地在瀏覽器中展示PDF文檔內(nèi)容,本文將介紹如何在.NET框架使用C#將PDF文件轉(zhuǎn)換為HTML格式,需要的朋友可以參考下
    2025-01-01

最新評論

柳河县| 自贡市| 翁牛特旗| 洱源县| 张家川| 饶平县| 安多县| 福海县| 马公市| 专栏| 革吉县| 泾源县| 高清| 西藏| 桑植县| 永济市| 时尚| 淮阳县| 普宁市| 吉林省| 宜良县| 郸城县| 昭苏县| 浦北县| 体育| 资兴市| SHOW| 胶南市| 天津市| 泰安市| 河津市| 荣成市| 琼海市| 灵丘县| 镇远县| 正镶白旗| 韶山市| 苗栗县| 兴国县| 页游| 肇源县|