C# - 从 DataTable 以字符串形式返回单个值(任何数据类型)

C# - Returning a single value (any datatype) from a DataTable as a string

我已经使用 ExcelDataReader 包在 C# 中从 excel 加载了一个 table,但是我正在努力编写一种方法,该方法 return 将单元格的值作为一个字符串,基于行号和列名。

如果 DataTable 中只有字符串,我有一个方法的解决方案...

public string ReadData(int rowNum, string columnName)
{
    DataRow row = table.Rows[rowNum];
    string value = row.Field<string>(columnName);
    return value;
}

(DataTable变量'table'加载到别处) ..但是我也希望能够 return 数字和日期(作为字符串)。

我觉得我可能需要以某种方式编辑这部分...

string value = row.Field<string>(columnName);

但我不知道如何制作它,所以它会拉回该字段中的任何值和类型,并且 return 是一个字符串。

非常感谢!

您可以使用 DataRow name-indexer returns 一个 object,我们可以调用 .ToString() 将其转换为 string

return row[columnname].ToString();

您可以简单地使用按名称索引器并调用 ToString():

string value = row[columnName].ToString();

您可能应该检查 null 值:

string value = (row[columnName] ?? string.Empty).ToString();

使用

string value = Convert.ToString(row[columnName]);

最好使用 Convert.ToString(),因为它不仅会检查 null,还会检查 DBNull,这是访问列具有的真实数据库时列的值没有内容。

在 C# 6.0 中:

return row[columnName]?.ToString();