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();
我已经使用 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();