将datarow值转换为字符串?

时间:2012-03-08 15:43:14

标签: c# ado.net datarow

我有一个名为“results”的数据集,其中包含多行数据。我想把这些数据变成一个字符串,但我不知道该怎么做。我正在使用以下代码:

string output = "";
foreach (DataRow rows in results.Tables[0].Rows)     
{
    output = output + rows.ToString() + "\n";
}

然而,我想我错过了一些东西,因为这不起作用。有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:40)

您需要指定要从中提取数据的数据行的哪一列。

尝试以下方法:

        StringBuilder output = new StringBuilder();
        foreach (DataRow rows in results.Tables[0].Rows)
        {
            foreach (DataColumn col in results.Tables[0].Columns)
            {
                output.AppendFormat("{0} ", rows[col]);
            }

            output.AppendLine();
        }

答案 1 :(得分:23)

我自己做了很多。如果您只需要所有行值的逗号分隔列表,则可以执行以下操作:

StringBuilder sb = new StringBuilder();
foreach (DataRow row in results.Tables[0].Rows)     
{
    sb.AppendLine(string.Join(",", row.ItemArray));
}

StringBuilder是首选方法,因为字符串连接对于大量数据来说要慢得多。

答案 2 :(得分:6)

您可以通过执行此操作获取列值

 rows["ColumnName"]

您还必须转换为适当的类型。

 output += (string)rows["ColumnName"]

答案 3 :(得分:3)

您的rows对象包含Item属性,您可以在其中找到每个列的值。当你在行上.ToString()时,你不能指望列自己连接。 您应该分别访问该行中的每一列,使用forforeach来遍历列数组。

在这里,看看课程:

  

http://msdn.microsoft.com/en-us/library/system.data.datarow.aspx