【.Net实用方法总结】 整理并总结System.Data中DataColumnCollection类及其方法介绍

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
🐬个人主页:会敲键盘的肘子
🐰系列专栏:.Net实用方法总结
🦀专栏简介:博主针对.Net开发和C站问答过程中遇到的问题进行总结,形成本专栏,希望可以帮助到您解决问题。
🐶座右铭:总有一天你所坚持的会反过来拥抱你。


在这里插入图片描述

🌈写在前面:

本文主要介绍System.Data命名空间的 DataColumnCollection 类,介绍其常用的方法和实践。


👉本文关键字:System.Data、DataColumnCollection类、DataTable类、方法实践、C#

1️⃣ System.Data命名空间

提供对表示 ADO.NET 体系结构的类的访问权限。 通过 ADO.NET,可以生成可有效管理多个数据源的数据的组件。

2️⃣ DataColumnCollection类

♈ 定义

表示 DataColumn 的 DataTable 对象的集合

public sealed class DataColumnCollection : System.Data.InternalDataCollectionBase

示例

以下示例循环访问对象的集合 DataColumn ,并打印集合中每列的各种属性。

private void PrintDataTableColumnInfo(DataTable table)
{
    // Use a DataTable object's DataColumnCollection.
    DataColumnCollection columns = table.Columns;

    // Print the ColumnName and DataType for each column.
    foreach(DataColumn column in columns)
    {
        Console.WriteLine(column.ColumnName);
        Console.WriteLine(column.DataType);
    }
}
♊ 属性
Count

获取集合中的元素总数

[System.ComponentModel.Browsable(false)]
public virtual int Count { get; }
Item[Int32]

从集合中获取位于指定索引位置的 DataColumn

public System.Data.DataColumn this[int index] { get; }

示例

以下示例使用 [Item] 属性打印 ColumnName 索引指定的对象的值 DataColumn 。 此示例使用 DataTable System.Windows包含的项。Forms.DataGrid 控件。

private void PrintColumnNamesByIndex(DataTable table)
{
    // Get the DataColumnCollection from a DataTable in a DataSet.
    DataColumnCollection columns = table.Columns;

    // Print each column's name using the Index.
    for (int i = 0 ;i <columns.Count ;i++)
        Console.WriteLine(columns[i]);
}
Item[String]

从具有指定名称的集合中获取 DataColumn

public System.Data.DataColumn? this[string name] { get; }

示例

以下示例使用 [Item] 属性打印 DataType 索引指定的对象的值 DataColumn

private void PrintDataType(DataTable table)
{
    // Get the DataColumnCollection from a DataTable in a DataSet.
    DataColumnCollection columns = table.Columns;

    // Print the column's data type.
    Console.WriteLine(columns["id"].DataType);
}

注意

[Item] 在搜索列名时有条件区分大小写。 例如,如果一个 DataColumn 名为“mydatacolumn”,另一个名为“Mydatacolumn”,则用于搜索其中一列的字符串被视为区分大小写。 但是,如果“mydatacolumn”存在并且“Mydatacolumn”不存在,则搜索字符串被视为不区分大小写。

List

获取作为列表的集合的项。

protected virtual System.Collections.ArrayList List { get; }
♉ 常用方法
Add(DataColumn)

创建指定的 DataColumn 对象并将其添加到 DataColumnCollection

public void Add (System.Data.DataColumn column);
AddRange(DataColumn[])

将指定的 DataColumn 数组的元素复制到集合末尾。

public void AddRange (System.Data.DataColumn[] columns);
Clear()

清除集合中的所有列。

public void Clear ();

示例

private void ClearColumnsCollection(DataTable table)
{
    DataColumnCollection columns;
    // Get the DataColumnCollection from a
    // DataTable in a DataSet.
    columns = table.Columns;
    columns.Clear();
}
Contains(String)

检查集合是否包含具有指定名称的列。

public bool Contains (string name);

示例

下面的示例使用 Contains 该方法和 CanRemove 方法来确定是否可以删除列。 如果是,则删除该列。

private void RemoveColumn(string columnName, DataTable table)
{
    DataColumnCollection columns = table.Columns;

    if (columns.Contains(columnName))
        if (columns.CanRemove(columns[columnName]))
            columns.Remove(columnName);
}
IndexOf(DataColumn)

获取按名称指定的列的索引。

public int IndexOf (System.Data.DataColumn? column);

示例

下面的示例使用该方法 Contains 来确定指定列是否存在于某个 DataColumnCollection。 如果是这样,该方法 IndexOf 将返回列的索引。

private void GetIndex(DataTable table)
{
    DataColumnCollection columns = table.Columns;
    if(columns.Contains("City"))
    {
        Console.WriteLine(columns.IndexOf("City"));
    }
}

该方法 IndexOf 不区分大小写。

IndexOf(String)

获取具有特定名称的列的索引(名称不区分大小写)。

public int IndexOf (string? columnName);
Remove(DataColumn)

从集合中移除指定的 DataColumn 对象。

public void Remove (System.Data.DataColumn column);

示例

以下示例使用该方法 Contains 来确定命名列是否存在。 如果是,则 [Item] 属性返回该列。 然后,该方法 CanRemove 会检查是否可以删除该列;如果是,该方法 Remove 将删除该列。

private void TestAndRemove(DataColumn colToRemove)
{
    DataColumnCollection columns;
    // Get the DataColumnCollection from a DataTable in a DataSet.
    columns = DataSet1.Tables["Orders"].Columns;

    if(columns.Contains(colToRemove.ColumnName))
    {
        columns.Remove(colToRemove);
    }
}
Remove(String)

从集合中移除具有指定名称的 DataColumn 对象。

public void Remove (string name);

示例

以下示例使用该方法 Contains 来确定命名列是否存在。 如果是,则 [Item] 属性返回该列。 然后,该方法 CanRemove 会检查是否可以删除该列;如果是,该方法 Remove 将删除该列。

private void RemoveColumnByName(string columnName)
{
    // Get the DataColumnCollection from a DataTable in a DataSet.
    DataColumnCollection columns =
        ds.Tables["Suppliers"].Columns;

    if(columns.Contains(columnName))
        if(columns.CanRemove(columns[columnName]))
            columns.Remove(columnName);
}
RemoveAt(Int32)

从集合中移除指定索引位置的列。

public void RemoveAt (int index);
♌ 注解

定义 DataColumnCollection 架构 DataTable,并确定每个 DataColumn 数据可以包含哪种类型。 可以通过对象的属性DataTable访问DataColumnCollectionColumns该对象。

使用DataColumnCollectionAddRemove方法插入和删除DataColumn对象。 使用 Count 属性确定集合中的对象数 DataColumn 。 使用该方法 Contains 验证集合中是否存在指定的索引或列名。

♋ 更多方法

更多方法请查阅官方文档DataColumnCollection类


⭐写在结尾:

文章中出现的任何错误请大家批评指出,一定及时修改。

希望写在这里的小伙伴能给个三连支持

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会敲键盘的肘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值