【发布时间】:2012-02-17 03:28:41
【问题描述】:
将 DataReader 的特定列保存到逗号分隔的字符串中的好方法是什么?
例如,这是我现在拥有的:
StringBuilder sb = new StringBuilder();
Database db = DatabaseFactory.CreateDatabase();
using(DbCommand dbcmd = mydb.GetStoredProcCommand("ProcStoredProc")) //No Parameters
{
IDataReader dr = db.ExecuteReader(sqlcmd)
while(dr.Read())
{
sb.AppendFormat("{0},",dr["CODE"]);
}
dr.Dispose();
}
// skipped code to remove the last comma.
string CSVString = sb.ToString();
在此示例中,DataReader 包含的行数不会超过 10 行。
谢谢。
【问题讨论】:
-
你现在有什么问题?
-
谢谢@Chris Shain:仅仅获得 10 行似乎步骤太多;想知道是否有一种优雅的方法。谢谢。
-
对我来说看起来不错。您所拥有的大部分内容都与数据库管道有关-语法糖可以缩短它,但它所做的所有工作仍然会发生。
-
使用DataSet/DataTable会减少代码行数吗?
-
不太可能,而且会更慢。
标签: c# csv ado.net datareader enterprise-library-5