创建sqldatareader实例还是只声明sqldatareader类型? [英] Create sqldatareader instance or just declare a type of sqldatareader ?

查看:80
本文介绍了创建sqldatareader实例还是只声明sqldatareader类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下方法:

I have the following method :

private void SetModuleOrPageByUserId(int userId)
       {
           ViewReports vr = new ViewReports();
           SqlDataReader drUserPref = null;
           drUserPref = vr.SetModuleOrPageByUserId(Convert.ToInt32(Session["UserID"]));
           if (drUserPref != null && drUserPref.HasRows)
           {
               while (drUserPref.Read())
               {
                   if (drUserPref["DefaultPage"] != null && drUserPref["ModuleName"] != null)
                   {
                       pageNameToRedirect = drUserPref["DefaultPage"].ToString();
                       moduleName = drUserPref["ModuleName"].ToString();
                   }
               }
           }
       }


如果我将drUserPref声明为
,会有什么区别?


What difference will it make if i declare the drUserPref as

SqlDataReader drUserPref = null

SqlDataReader drUserPref = new SqlDataReader();

推荐答案

您无法使用new关键字实例化SqlDataReader的实例,因为数据读取器没有构造函数.您必须在命令上使用ExecuteReader创建实例.这是设计使然 SqlDataReader(MSDN) [
You cannot instantiate an instance of SqlDataReader using the new keyword, as the data reader has no constructors. You have to create an instance using ExecuteReader on the command. This is by design SqlDataReader (MSDN)[^]


这篇关于创建sqldatareader实例还是只声明sqldatareader类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆