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

时间:2016-04-22 16:21:24

标签: c# string datatable field

我使用ExcelDataReader包在C#中加载了一个excel表,但是我很难编写一个方法,根据行号和列名返回一个单元格的值作为字符串。

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

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

(DataTable变量'table'在别处加载) ..但我想也能够返回数字和日期(作为字符串)。

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

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

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

非常感谢!

4 个答案:

答案 0 :(得分:0)

您可以使用DataRow name-indexer返回object,我们可以通过.ToString()将其转换为string

return row[columnname].ToString();

答案 1 :(得分:0)

您只需使用按名称索引器并调用ToString()

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

您可能应该检查null值:

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

答案 2 :(得分:0)

使用

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

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

答案 3 :(得分:0)

在C#6.0中:

return row[columnName]?.ToString();