函数返回一个SqlDataReader对象

时间:2023-03-10 04:45:24
函数返回一个SqlDataReader对象

解决方法:

1.尝试使用dataset

2.执行数据库操作命令 
SqlDataReader reader=mySqlCommand.ExecuteReader(CommandBehavior.CloseConnection);

示例:

原代码:

//获取书的目录
                public SqlDataReader GetBookCategories()
                {
                //创建数据库连接和命令的对象
                SqlConnection myConnection=new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
                string sqlString="select CategoryID,CategoryName from BookCategories order by CategoryName ASC";
                SqlCommand mySqlCommand=new SqlCommand(sqlString,myConnection);                 
                //打开数据库连接
                myConnection.Open();
                //执行数据库操作命令                
                SqlDataReader reader=mySqlCommand.ExecuteReader();
                //关闭数据库连接
                myConnection.Close();                 
                 return  reader;         
                }  
------------------
编译错误:未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
------------------

解决方法:

[WebMethod]
//获取书的目录
public SqlDataReader GetBookCategories()
{
//创建数据库连接和命令的对象
SqlConnection myConnection=new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
string sqlString="select CategoryID,CategoryName from BookCategories order by CategoryName ASC";
SqlCommand mySqlCommand=new SqlCommand(sqlString,myConnection); 
//打开数据库连接
myConnection.Open();
//执行数据库操作命令 
SqlDataReader reader=mySqlCommand.ExecuteReader(CommandBehavior.CloseConnection);

return reader; 
}

相关文章