来自 DataReader 列的逗号分隔字符串

发布于 2024-12-29 01:39:19 字数 599 浏览 1 评论 0原文

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

谢谢。

What is a good way to save a particular column of a DataReader into a comma separated string?

For instance here is what I have now:

     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();

The DataReader will not contain more than 10 rows in this example.

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟酒忠诚 2025-01-05 01:39:19

一些语法糖可能是:

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;
}

Some syntactic sugar could be:

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

Helper function

public static IEnumerable<IDataRecord> AsEnumerable(this IDataReader reader)
{
    while (reader.Read())
        yield return reader;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文