将datarow值转换为字符串?
我有一个名为“results”的数据集,其中包含多行数据。 我想把这些数据变成一个字符串,但我不知道该怎么做。 我正在使用以下代码:
string output = ""; foreach (DataRow rows in results.Tables[0].Rows) { output = output + rows.ToString() + "\n"; }
但是,我想我错过了一些东西,因为这不起作用。 有人能指出我正确的方向吗?
您需要指定要从中提取数据的数据行的哪一列。
请尝试以下方法:
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是首选方法,因为字符串连接对于大量数据而言要慢得多。
您可以通过执行此操作获取列值
rows["ColumnName"]
您还必须转换为适当的类型。
output += (string)rows["ColumnName"]
您的rows
对象包含Item
属性,您可以在其中找到每个列的值。 当你在行上执行.ToString()
时,你不能指望列自己连接。 您应该分别从行中访问每一列,使用for
或foreach
来遍历列数组。
在这里,看看课程:
http://msdn.microsoft.com/en-us/library/system.data.datarow.aspx