首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一个棘手的有关问题,获得对象时出错。

2012-01-23 
一个棘手的问题,获得对象时出错。。在NUNIT工具测试报错如下:GetUser.UserProviderTests.GetAllUsers:System

一个棘手的问题,获得对象时出错。。
在NUNIT工具测试报错如下:
GetUser.UserProviderTests.GetAllUsers   :   System.NullReferenceException   :   未将对象引用设置到对象的实例。

ADO.NET与数据库连接代码如下:
    public   UserInfo[]   GetAllUsers(int   pageIndex,   int   pageSize)
              {
                      SqlCommand   cmdObj   =   cnObj.CreateCommand();
                      SqlDataReader   readerObj=null;
                      UserInfo[]   UInfoList   =   new   UserInfo[pageSize];

                      long   index   =   0;

                      cmdObj.CommandText   =   "GetAllUserInfo ";
                      cmdObj.CommandType   =   CommandType.StoredProcedure;

                      cmdObj.Parameters.Add( "@PageIndex ",   SqlDbType.Int).Value   =   pageIndex;
                      cmdObj.Parameters.Add( "@PageSize ",   SqlDbType.Int).Value   =   pageSize;

                      try
                      {
                              cnObj.Open();
                              readerObj   =   cmdObj.ExecuteReader();

                              int[]   cols   =   new   int[]
{
readerObj.GetOrdinal( "Username "),
readerObj.GetOrdinal( "UserPwd "),
};
///调试时,只会读取WHILE大括号内的第一个分号语句,突然就跳出到FINALLY执行
                              while   (readerObj.Read())
                              {
                                      UInfoList[index].UserName   =   readerObj.GetString(cols[0]);
                                      UInfoList[index].UserPwd   =   readerObj.GetString(cols[1]);

                                      index++;
                              }
                      }
                      catch   (SqlException   e)
                      {
                             


                      }
                      finally
                      {
                              if   (readerObj   !=   null)
                              {
                                      readerObj.Close();
                              }

                              if   (cnObj.State   ==   ConnectionState.Open)
                              {
                                      cnObj.Close();
                              }
                      }

                      if   (index   <   pageSize)
                      {
                              UserInfo[]   userInfos   =   new   UserInfo[index];
                              Array.Copy(UInfoList,   0,   userInfos,   0,   index);

                              return   userInfos;
                      }
                      else
                      {
                              return   UInfoList;
                      }
              }

请大家帮忙解决,谢谢,。如果觉得代码不全,需要全部,我会。。


[解决办法]
UserInfo[] UInfoList = new UserInfo[pageSize];
UInfoList[i]=new UserInfo();
问题解决.



[解决办法]
RecordsAffected是指添加删除修改的行数,而不是取到记录的行数.

热点排行