【问题标题】:Datareader perform dynamic calculationDatareader 执行动态计算
【发布时间】:2015-11-05 10:30:05
【问题描述】:

我正在尝试读取和处理大数据结果。我正在使用数据阅读器逐条读取项目记录,但是我需要在我的流程中处理计算。为了处理我将创建的名为“Name”的动态字段的示例,将从数据读取器 FirstName + " " + LastName 获取结果。

谁能帮助指导我让它工作。我不确定如何达到我想要的结果。

【问题讨论】:

    标签: c# sqldatareader datareader large-data


    【解决方案1】:

    将计算放入您的 SQL 中。

    SELECT *, FirstName + ' ' + LastName AS FullName
    FROM   table
    WHERE  where-clause
    ORDER BY order-by-clause
    

    解决@JoelCoehoorn 的担忧: 对于那些绝对必须在 C# 中执行此操作的人:

    在 SqlDataReader 的循环中添加:

    string fullName = reader["FirstName"] + " " + reader["LastName"];
    

    或者如果您使用的是最新的 C#(VS2015 及更高版本):

    string fullName = $"{reader["FirstName"]} {reader["LastName"]}";
    

    【讨论】:

    • 这几乎可以肯定是最简单和最快的答案(+1!),但如果您需要真正扩大规模,您通常会在客户端/C# 端做得更好。
    • 同意。我想,当有人达到巨大的规模时,他们已经知道了。
    • 我正在使用 VS2013,我无法执行该方法,因为计算是基于用户输入的动态计算。我需要让这个部分是动态的: reader["FirstName"] + " " + reader["LastName"];
    • 它的你的代码,@Paul。您可以根据需要将其设为“动态”或毫无生气。
    猜你喜欢
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多