C# 将数据行值转换为字符串?

C# 将数据行值转换为字符串?,c#,ado.net,datarow,C#,Ado.net,Datarow,我有一个名为“结果”的数据集,其中包含几行数据。我想把这些数据转换成一个字符串,但我不知道怎么做。我正在使用以下代码: string output = ""; foreach (DataRow rows in results.Tables[0].Rows) { output = output + rows.ToString() + "\n"; } 然而,我想我遗漏了一些东西,因为这不起作用。有人能给我指出正确的方向吗?您的行对象拥有一个项属性,您可以在其中找到每个列的值。在对

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

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

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

您的
对象拥有一个
属性,您可以在其中找到每个列的值。在对行执行
.ToString()
操作时,不能期望列自身连接起来。 您应该分别从行访问每一列,使用
for
foreach
遍历列数组

在这里,我们来看看这个课程:


通过执行此操作,可以获得列值

 rows["ColumnName"]
您还必须强制转换为适当的类型

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

您需要指定要从datarow的哪一列提取数据

请尝试以下操作:

        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();
        }

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

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

StringBuilder是首选方法,因为对于大量数据,字符串连接速度明显较慢。

什么不起作用?你在什么地方有例外吗?没有例外。只是“输出”的价值根本不是我所期望的。但是,我认为下面的两个答案让我朝着正确的方向前进。你是对的,安德烈。我忘了我还得迭代行中的列。杰夫,这很好用!非常感谢你!我没有太多使用StringBuilder,所以我很高兴有机会在这里使用它。也谢谢你的示例代码!不客气,StringBuilder非常棒。当你发现自己多次操纵字符串时,要习惯使用它。谢谢,马修。您和Andrei都认为需要从每一行的列中获取我的值是正确的。我完全忘记了。