C# 对象在使用数据之前进行处理

C# 对象在使用数据之前进行处理,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我正在努力解决一些System.Data.SqlClient.SqlDataReader问题 实际上,我使执行查询的DatabaseHandler更加方便,使用IDisposable接口来使用语句 当我使用该处理程序读取单个文章时,查询成功执行,但是,该处理程序在我使用数据之前已处理完毕 然后,结果是NullReferenceException。下面是阅读代码的文章,以及Dispose() // Article Reading Code using (var ArticleHandler = n

我正在努力解决一些System.Data.SqlClient.SqlDataReader问题

实际上,我使执行查询的DatabaseHandler更加方便,使用IDisposable接口来使用语句

当我使用该处理程序读取单个文章时,查询成功执行,但是,该处理程序在我使用数据之前已处理完毕

然后,结果是NullReferenceException。下面是阅读代码的文章,以及Dispose()

// Article Reading Code
using (var ArticleHandler = new DatabaseHandler())
{
    var ArticleReader = ArticleHandler.ExecuteCommand("ARTICLE_INQUIRY",
        DatabaseHandler.QueryType.ExecuteReader,
        new DatabaseParameter[]
        {
            new DatabaseParameter("seq", Sequence)
        }) as System.Data.SqlClient.SqlDataReader; //Query Successful

    if (!ArticleReader.HasRows)
    {
        Response.Redirect("/articles/list.aspx");
    }
    else
    {
        ArticleReader.Read(); //Data Read Successful

        CurrentArticle.title = (string)ArticleReader["title"]; //NullReferenceException ?
        CurrentArticle.category = (string)ArticleReader["category"];
        CurrentArticle.datetime = (string)ArticleReader["written_datetime"];
        CurrentArticle.content = (string)ArticleReader["content"];
    }
}


/* Database Handler Dispose() */
public void Dispose()
{
    CurrentConnection = null;
}

另外,我检查了列名,它们与数据库信息匹配。

在访问读卡器以访问下一行中的数据之前,如果要关闭基础sqlconnection,请检查数据库处理程序内部。如果sqlconnection正在关闭,读卡器将自动关闭。粘贴处理程序执行命令代码,这样我们就可以查看它了

为什么要将其设置为null?那么
CurrentArticle
为null无法使用提供的代码诊断该问题。不相关,但如果CurrentConnection是SqlConnection,则需要在dispose()中处理它,而不仅仅是将其设置为null,所以我认为它需要为空。我认为在我使用数据之前,ArticleReader已被处理。啊,我忘了用
new
初始化
CurrentArticle
。。。。很抱歉(嗯,我多次使用该处理程序,但问题就发生在这里。我刚刚解决了问题。感谢您的回答!问题是什么?当我访问
CurrentArticle
时引发了NullReferenceException。我误解了
Dispose()
由于调试器的流而出现了此类问题。