作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
个人主页:会敲键盘的肘子
系列专栏:.Net实用方法总结
专栏简介:博主针对.Net开发和C站问答过程中遇到的问题进行总结,形成本专栏,希望可以帮助到您解决问题。
座右铭:总有一天你所坚持的会反过来拥抱你。
写在前面:
本文主要介绍System.Data命名空间的 DataColumnCollection 类,介绍其常用的方法和实践。
本文关键字:System.Data、DataColumnCollection类、DataTable类、方法实践、C#
提供对表示 ADO.NET 体系结构的类的访问权限。 通过 ADO.NET,可以生成可有效管理多个数据源的数据的组件。
表示 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);
}
}
获取集合中的元素总数
[System.ComponentModel.Browsable(false)]
public virtual int Count { get; }
从集合中获取位于指定索引位置的 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
从具有指定名称的集合中获取 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”不存在,则搜索字符串被视为不区分大小写。
获取作为列表的集合的项。
protected virtual System.Collections.ArrayList List { get; }
创建指定的 DataColumn 对象并将其添加到 DataColumnCollection。
public void Add (System.Data.DataColumn column);
将指定的 DataColumn 数组的元素复制到集合末尾。
public void AddRange (System.Data.DataColumn[] columns);
清除集合中的所有列。
public void Clear ();
示例
private void ClearColumnsCollection(DataTable table)
{
DataColumnCollection columns;
// Get the DataColumnCollection from a
// DataTable in a DataSet.
columns = table.Columns;
columns.Clear();
}
检查集合是否包含具有指定名称的列。
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);
}
获取按名称指定的列的索引。
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 不区分大小写。
获取具有特定名称的列的索引(名称不区分大小写)。
public int IndexOf (string? columnName);
从集合中移除指定的 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);
}
}
从集合中移除具有指定名称的 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);
}
从集合中移除指定索引位置的列。
public void RemoveAt (int index);
定义 DataColumnCollection 架构 DataTable,并确定每个 DataColumn 数据可以包含哪种类型。 可以通过对象的属性DataTable访问DataColumnCollectionColumns该对象。
使用DataColumnCollectionAdd和Remove方法插入和删除DataColumn对象。 使用 Count 属性确定集合中的对象数 DataColumn 。 使用该方法 Contains 验证集合中是否存在指定的索引或列名。
更多方法请查阅官方文档DataColumnCollection类。
⭐写在结尾:
文章中出现的任何错误请大家批评指出,一定及时修改。
希望写在这里的小伙伴能给个三连支持!