我有一个名为“results”的数据集,其中包含多行数据。我想把这些数据变成一个字符串,但我不知道该怎么做。我正在使用以下代码:
string output = "";
foreach (DataRow rows in results.Tables[0].Rows)
{
output = output + rows.ToString() + "\n";
}
然而,我想我错过了一些东西,因为这不起作用。有人能指出我正确的方向吗?
答案 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()
时,你不能指望列自己连接。
您应该分别访问该行中的每一列,使用for
或foreach
来遍历列数组。
在这里,看看课程:
http://msdn.microsoft.com/en-us/library/system.data.datarow.aspx