将datarow值转换为字符串?

Kev*_*vin 25 c# ado.net datarow

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

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

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

Kha*_*han 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();
        }
Run Code Online (Sandbox Code Playgroud)


SPF*_*ake 24

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

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

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


Mat*_*hew 6

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

 rows["ColumnName"]
Run Code Online (Sandbox Code Playgroud)

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

 output += (string)rows["ColumnName"]
Run Code Online (Sandbox Code Playgroud)