国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[C#]csv文件與DataTable互相導入處理

2019-11-14 16:41:51
字體:
來源:轉載
供稿:網友

封裝處理下,以后項目用到可以直接使用,比較簡單。

1.首先看封裝好的類

using System;using System.Data;using System.IO;using System.Text;using CSharpUtilHelpV2;using StringUtilHelp;namespace DBUtilHelpV2Plus{    public static class DBToolV2Plus    {        /// <summary>        /// 將DataTable導出到CSV.        /// </summary>        /// <param name="table">DataTable</param>        /// <param name="fullSavePath">保存路徑</param>        /// <param name="tableheader">標題信息</param>        /// <param name="columname">列名稱『eg:姓名,年齡』</param>        /// <returns>導出成功true;導出失敗false</returns>        public static bool ToCSV(this DataTable table, string fullSavePath, string tableheader, string columname)        {            ArgumentChecked(table, fullSavePath);            //------------------------------------------------------------------------------------            try            {                string _bufferLine = "";                using (StreamWriter _writerObj = new StreamWriter(fullSavePath, false, Encoding.UTF8))                {                    if (!string.IsNullOrEmpty(tableheader))                        _writerObj.WriteLine(tableheader);                    if (!string.IsNullOrEmpty(columname))                        _writerObj.WriteLine(columname);                    for (int i = 0; i < table.Rows.Count; i++)                    {                        _bufferLine = "";                        for (int j = 0; j < table.Columns.Count; j++)                        {                            if (j > 0)                                _bufferLine += ",";                            _bufferLine += table.Rows[i][j].ToString();                        }                        _writerObj.WriteLine(_bufferLine);                    }                    return true;                }            }            catch (Exception)            {                return false;            }        }        /// <summary>        /// 參數檢查        /// </summary>        /// <param name="table"></param>        /// <param name="fullSavePath"></param>        PRivate static void ArgumentChecked(DataTable table, string fullSavePath)        {            if (table == null)                throw new ArgumentNullException("table");            if (string.IsNullOrEmpty(fullSavePath))                throw new ArgumentNullException("fullSavePath");            string _fileName = CSharpToolV2.GetFileNameOnly(fullSavePath);            if (string.IsNullOrEmpty(_fileName))                throw new ArgumentException(string.Format("參數fullSavePath的值{0},不是正確的文件路徑!", fullSavePath));            if (!_fileName.InvalidFileNameChars())                throw new ArgumentException(string.Format("參數fullSavePath的值{0},包含非法字符!", fullSavePath));        }        /// <summary>        /// 將CSV文件數據導入到Datable中        /// </summary>        /// <param name="table"></param>        /// <param name="filePath">DataTable</param>        /// <param name="rowIndex">保存路徑</param>        /// <returns>Datable</returns>        public static DataTable AppendCSVRecord(this DataTable table, string filePath, int rowIndex)        {            ArgumentChecked(table, filePath);            if (rowIndex < 0)                throw new ArgumentException("rowIndex");            using (StreamReader reader = new StreamReader(filePath, Encoding.UTF8, false))            {                int i = 0, j = 0;                reader.Peek();                while (reader.Peek() > 0)                {                    j = j + 1;                    string _line = reader.ReadLine();                    if (j >= rowIndex + 1)                    {                        string[] _split = _line.Split(',');                        DataRow _row = table.NewRow();                        for (i = 0; i < _split.Length; i++)                        {                            _row[i] = _split[i];                        }                        table.Rows.Add(_row);                    }                }                return table;            }        }    }}

2.代碼使用測試

using System;using System.Data;using DBUtilHelpV2;using DBUtilHelpV2Plus;namespace DBUtilHelpV2PlusTest{    class Program    {        static DataTable testDb = null;        static string fullSavePath = string.Format(@"C:/{0}.csv", DateTime.Now.ToString("yyyyMMddHH"));        static void Main(string[] args)        {            try            {                CreateTestDb();                Console.WriteLine(string.Format("DataTable導出到CSV文件{0}.", testDb.ToCSV(fullSavePath, "姓名,年齡", "人員信息表") == true ? "成功" : "失敗"));                testDb.Rows.Clear();                Console.WriteLine(string.Format("清空數據,當前{0}條數據.", testDb.Rows.Count));                testDb = testDb.AppendCSVRecord(fullSavePath, 2);                Console.WriteLine(string.Format("CSV文件導入到Datable,導入{0}條數據.", testDb.Rows.Count));            }            catch (Exception ex)            {                Console.WriteLine(ex.Message);            }            finally            {                Console.ReadLine();            }        }        static void CreateTestDb()        {            if (testDb == null)            {                testDb = DBToolV2.CreateTable("Name,Age|int");                for (int i = 1; i <= 10; i++)                {                    DataRow _row = testDb.NewRow();                    _row["Name"] = string.Format("YanZhiwei_{0}", i);                    _row["Age"] = i;                    testDb.Rows.Add(_row);                }            }        }    }}

image

image


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 同仁县| 三都| 安远县| 湄潭县| 长葛市| 莎车县| 宁陵县| 乌恰县| 库车县| 屏山县| 元朗区| 道孚县| 蒲城县| 海安县| 陵川县| 安阳县| 广宁县| 广宗县| 永昌县| 青岛市| 突泉县| 格尔木市| 改则县| 双辽市| 甘肃省| 紫阳县| 唐海县| 池州市| 江阴市| 龙泉市| 钦州市| 鄂托克旗| 运城市| 依安县| 林芝县| 和静县| 卓资县| 成都市| 巴塘县| 盖州市| 福鼎市|