DataReader列中以逗号分隔的字符串

本文关键字:分隔 字符串 DataReader | 更新日期: 2023-09-27 18:21:15

将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行。

谢谢。

DataReader列中以逗号分隔的字符串

一些语法糖可能是:

using(var dbcmd = mydb.GetStoredProcCommand("ProcStoredProc"))
using(var dr = db.ExecuteReader(sqlcmd))
  var result = string.Join(",", reader.AsEnumerable().Select (r => r["Code"]));

助手功能

public static IEnumerable<IDataRecord> AsEnumerable(this IDataReader reader)
{
    while (reader.Read())
        yield return reader;
}