2

我不确定是否需要创建一个全新的类或什么,我对 asp.net 很陌生。

这是我的代码:

public static IEnumerable<DistInfo> GetGeneralInformation ( int ClientID )
{
    using ( var conn = new SqlConnection( GetConnectionString() ) )
    using ( var cmd = conn.CreateCommand() )
    {
        conn.Open();
        cmd.CommandText =
        @"SELECT i.GoLiveDate, i.FirstBonusRun, i.TechFName, i.TechLName, i.TechEmail, i.TechPhone, i.WebISPFName, i.WebISPLName, 
          i.WebISPEmail, i.WebISPPhone, i.FullFillFName, i.FullFillLName, i.FullFillEmail, i.FullFillPhone, d.FName,
          d.LName, d.HomePhone, d.Email
          FROM NC_Information i
          INNER JOIN Distributor d
            ON d.DistID = i.ClientID
          WHERE clientID = @value";
        cmd.Parameters.AddWithValue( "@value", ClientID );
        using ( var reader = cmd.ExecuteReader() )
        {
            while ( reader.Read() )
            {
                var distInfo = new DistInfo
                {
                    AnticipatedLaunchDate = reader.GetDateTime( reader.GetOrdinal( "GoLiveDate" ) )
                };
                yield return distInfo;
            }
        }
    }
}

给出您是否缺少组装或参考。这是否意味着我需要创建一个 DistInfo 类来完成这项工作?

new DistInfo 给出与上述相同的错误。

抱歉,我对 asp.net 很陌生,不太了解如何让我的工作像这篇文章中那样:

我不断收到此错误:“阅读器关闭时调用读取的尝试无效”

4

2 回答 2

2

您实际上有一个名为 的课程DistInfo吗?代码是否编译?如果没有,您需要添加一个新的 DistInfo 类,该类至少具有DateTime. 就像是:

public class DistInfo
{
    public DateTime AnticipatedLaunchDate { get; set; }
}

如果需要,您可以在其中添加更多属性:)

于 2012-04-20T20:52:48.887 回答
2

如果您只需要返回日期/时间信息,然后像这样定义您的方法

public static IEnumerable<DateTime> GetGeneralInformation(int ClientID)

像这样简化你的阅读循环

int goLiveDateOrdinal = reader.GetOrdinal("GoLiveDate");
while (reader.Read()) {
    yield return reader.GetDateTime(goLiveDateOrdinal);
}

仅当您必须返回多个值时才需要创建一个类。

于 2012-04-20T21:37:54.460 回答