一个属于你的次元网络基地
 
昨日:篇  今日:篇   总帖:篇   会员:
小狼人Lv92   
c# Recordset转datatable 方法     
        /// <summary>
        /// Recordset转datatable
        /// </summary>
        /// <param name="recordset"></param>
        /// <returns></returns>
        private DataTable ConvertRecordsetToDataTable(ADODB.Recordset recordset)
        {
            DataTable dataTable = new DataTable();
            dataTable.Namespace = null;
            // 添加列
            for (int i = 0; i < recordset.Fields.Count; i++)
            {
                dataTable.Columns.Add(GetUniqueColumnName(dataTable,recordset.Fields[i].Name)
                    ,typeof(string));
            }

            // 添加数据
            recordset.MoveFirst();
            while (!recordset.EOF)
            {
                var dataRow = dataTable.NewRow();
                for (int i = 0; i < recordset.Fields.Count; i++)
                {
                    var field = recordset.Fields[i];
                    dataRow[i] = field.Value;
                }
                dataTable.Rows.Add(dataRow);
                recordset.MoveNext();
            }

            return dataTable;
        }

        /// <summary>
        /// 设置datatable唯一列名
        /// </summary>
        /// <param name="dataTable"></param>
        /// <param name="baseColumnName"></param>
        /// <returns></returns>
        private string GetUniqueColumnName(DataTable dataTable,string baseColumnName)
        {
            string columnName = baseColumnName;

            // 如果列名已存在,追加数字后缀,直到找到一个唯一的列名
            int suffix = 1;
            while (dataTable.Columns.Contains(columnName))
            {
                columnName = baseColumnName+"_"+suffix;
                suffix++;
            }

            return columnName;
        }

 0  已被阅读了135次  楼主 2023-12-01 16:16:09
回复列表

回复:c# Recordset转datatable 方法

加入官群 QQ咨询 友链展示 申请友链
粤ICP备18094291号
您的IP:3.144.151.106,2024-04-27 14:26:46,Processed in 0.08458 second(s).
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
Powered by HadSky 8.0.0
已有0次打赏
(0) 分享
分享

请保存二维码或复制链接进行分享

取消