#region
|
|
using System;
|
using System.Data;
|
|
#endregion
|
|
namespace CSFrameworkV5.Common
|
{
|
/// <summary>
|
/// 资料表工具类
|
/// </summary>
|
public sealed class DataTableTools
|
{
|
/// <summary>
|
/// 在资料表的第一行添加一条空行
|
/// </summary>
|
/// <param name="dt"></param>
|
public static void AddFirstEmptyRow(DataTable dt)
|
{
|
if (dt.Rows.Count == 0) return;
|
|
if (dt.Rows[0].IsNull(0)) return;
|
|
//插入一行空记录
|
var row = dt.NewRow();
|
dt.Rows.InsertAt(row, 0);
|
}
|
|
/// <summary>
|
/// 添加合并的列数据
|
/// </summary>
|
/// <param name="dt">数据表</param>
|
/// <param name="mergedColumnName">合并数据后的列名</param>
|
/// <param name="fields">将要合并数据的字段名</param>
|
public static void AddMergedColumn(DataTable dt,
|
string mergedColumnName, string[] fields)
|
{
|
if (dt.Columns[mergedColumnName] == null)
|
dt.Columns.Add(mergedColumnName, Type.GetType("System.String"));
|
|
var Combine = string.Empty;
|
foreach (DataRow dr in dt.Rows)
|
{
|
Combine = string.Empty;
|
foreach (var Col in fields)
|
if (string.IsNullOrEmpty(Combine))
|
Combine = ConvertEx.ToString(dr[Col]);
|
else
|
Combine += " - " + ConvertEx.ToString(dr[Col]);
|
|
dr[mergedColumnName] = Combine;
|
}
|
}
|
|
/// <summary>
|
/// 合并字段的数据,返回格式:管理员(admin)
|
/// </summary>
|
/// <param name="dt"></param>
|
/// <param name="mergedColumnName"></param>
|
/// <param name="nameField">名称字段</param>
|
/// <param name="quoteField">括号内编号字段</param>
|
public static void AddMergedColumn(DataTable dt,
|
string mergedColumnName, string nameField, string quoteField)
|
{
|
if (dt.Columns[mergedColumnName] == null)
|
dt.Columns.Add(mergedColumnName, Type.GetType("System.String"));
|
|
var Combine = string.Empty;
|
foreach (DataRow dr in dt.Rows)
|
{
|
Combine = ConvertEx.ToString(dr[nameField]) + " (" +
|
ConvertEx.ToString(dr[quoteField]) + ")";
|
dr[mergedColumnName] = Combine;
|
}
|
|
dt.AcceptChanges();
|
}
|
|
/// <summary>
|
/// 调换两行之间的位置
|
/// </summary>
|
/// <param name="index1"></param>
|
/// <param name="index2"></param>
|
/// <param name="dt"></param>
|
/// <returns></returns>
|
public static void SwapRow(int index1, int index2, DataTable dt)
|
{
|
var dr = dt.NewRow();
|
var row = dt.Rows[index1];
|
dr.ItemArray = row.ItemArray;
|
dt.Rows.InsertAt(dr, index2);
|
dt.Rows.Remove(row);
|
dt.AcceptChanges();
|
}
|
|
/// <summary>
|
/// 更新表指定字段的数据
|
/// </summary>
|
/// <param name="table">资料表</param>
|
/// <param name="field">字段名</param>
|
/// <param name="value">数据</param>
|
public static void UpdateFieldValue(DataTable table, string field,
|
object value)
|
{
|
foreach (DataRow R in table.Rows) R[field] = value;
|
}
|
|
/// <summary>
|
/// 更新表指定字段的排序号码
|
/// </summary>
|
/// <param name="table">资料表</param>
|
/// <param name="sortField">报序字段名</param>
|
public static void UpdateSortField(DataTable table, string sortField)
|
{
|
var i = 1;
|
foreach (DataRow R in table.Rows)
|
{
|
R[sortField] = i;
|
i++;
|
}
|
|
table.AcceptChanges();
|
}
|
}
|
}
|