我正在学习asp.net2.0网络应用系统开发一书,下载里面第6章的范例,运行后出错,不知怎样解决,请各位帮忙,谢谢!(完整代码在源文件里,是关于投票管理的)
private void BindVoteListData()
{
Vote vote = new Vote();
SqlDataReader recv = vote.GetVotes(); ItemList.DataTextField = "Item";
ItemList.DataValueField = "VoteID";
ItemList.DataSource = recv;
ItemList.DataBind(); recv.Close();
}
错误是说recv.Close();  未将对象引用设置到对象的实例。其中vote.GetVotes()代码如下:
public SqlDataReader GetVotes()
{
///定义类SQLHelper
SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); ///定义保存从数据库获取的结果的DataReader
SqlDataReader dr = null; try
{
///执行存储过程
sqlHelper.RunProc("Pr_GetVotes", out dr);
}
catch (Exception ex)
{
///抛出执行数据库异常
SystemError.CreateErrorLog(ex.Message);
throw new Exception(ex.Message, ex);
} ///返回从数据库获取的结果
return (dr);
}
Pr_GetVotes存储过程代码如下:
ALTER PROCEDURE Pr_GetVotesASSELECT 
    *
    
FROM
    Votes
    
ORDER BY VoteID

解决方案 »

  1.   

    没实际开发过web程序,但从你的报错来看应该是很清楚的,就是recv 没有被实例话,跟踪下GetVotes() 函数,看看
    dr在哪里出了问题
      

  2.   

    具体应该怎样做?因为也是刚刚接触c#,对它的查错不了解,问题应该出在GetVotes() 函数,但是下一步我不只怎样做.郁闷 呵呵
      

  3.   

    ItemList.DataSource 要绑定的是一个集合
    用recv.reade() 读出数据存到集合中在绑定。
    recv.Close();  未将对象引用设置到对象的实例。 
    是因为recv是null 
    检查下  vote.GetVotes();  这个方法