gpt4 book ai didi

c# - DataRow:按给定的列名称选择单元格值

转载 作者:IT王子 更新时间:2023-10-29 03:57:02 25 4
gpt4 key购买 nike

我遇到了 DataRow 的问题,这让我很头疼。

使用 OleDbConnection 从 Excel 电子表格中读取数据行。

如果我尝试使用列名从 DataRow 中选择数据,即使那里有数据,它也会返回 DBNull。

但事情并没有那么简单。

datarow.Table.Columns[5].ColumnName 返回“我的列”。
datarow["my column"] 返回 DBNull。
datarow[5] 返回 500。
datarow[datarow.Table.Columns[5].ColumnName] 返回 DBNull。 (只是为了确保它不是错字!)

我可以只使用列号从数据行中选择内容,但我不喜欢这样做,因为如果列顺序发生变化,软件就会崩溃。

最佳答案

您使用的是哪个版本的 .NET?从 .NET 3.5 开始,有一个程序集 System.Data.DataSetExtensions,其中包含对 dataTables、dataRows 等的各种有用的扩展。

你可以尝试使用

row.Field<type>("fieldName");

如果不行,你可以这样做:

DataTable table = new DataTable();
var myColumn = table.Columns.Cast<DataColumn>().SingleOrDefault(col => col.ColumnName == "myColumnName");
if (myColumn != null)
{
// just some roww
var tableRow = table.AsEnumerable().First();
var myData = tableRow.Field<string>(myColumn);
// or if above does not work
myData = tableRow.Field<string>(table.Columns.IndexOf(myColumn));
}

关于c# - DataRow:按给定的列名称选择单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7119993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com