日期:2014-05-18  浏览次数:20360 次

看看我的代码有错么?高分。
//作用:执行返回值为OleDbDataReader数据集的SQL语句
  //参数:SqlStr(string):Sql语句
  //返回值:无

  public   void   Exe(string   SqlStr,out   OleDbDataReader   _Reader)
  {
    if(SqlStr   !=   null   ||   SqlStr!= " ")
      {
          Open();//打开数据库链接
          OleDbCommand   Db_Com   =   OleDbCommand(SqlStr,Db_Con);   //Db_Con(数据库链接对象   OleDbConnection)
          try
          {
          _Reader=Db_Com.ExecuteReader(CommandBehavior.CloseConnection);
        }
          catch(Exception   ex)
        {
            _Reader=null;
            Error.WriteErrorlog(ex.Message+ "       执行返回值为OleDbDataReader数据集的SQL语句。 ");  
        }
      }    
    }

    public   void   GetRead()
    {
      OleDbDataReader   _Reader=null;
      Exe( "Select   *   From   News ",out   _Reader);
    }

运行出错:CS0177:   控制离开当前方法之前必须对   out   参数“_Reader”赋值

源错误:

行   106:   //返回值:无
行   107:
行   108:   public   void   Exe(string   SqlStr,out   OleDbDataReader   _Reader)
行   109:   {
行   110:     if(SqlStr   !=   null   ||   SqlStr!= " ")
 


------解决方案--------------------
if(SqlStr != null || SqlStr!= " ")前加入
_Reader=null;
------解决方案--------------------
Exe( "Select * From News ",out _Reader);
???
------解决方案--------------------
hanmlxiao(hanml)
nod
这么写还不如写return
------解决方案--------------------
public void Exe(string SqlStr)
{
OleDbDataReader _Reader=null;
if(SqlStr != null || SqlStr!= " ")
{
Open();//打开数据库链接
OleDbCommand Db_Com = OleDbCommand(SqlStr,Db_Con); //Db_Con(数据库链接对象 OleDbConnection)
try
{
_Reader=Db_Com.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception ex)
{
_Reader=null;
Error.WriteErrorlog(ex.Message+ " 执行返回值为OleDbDataReader数据集的SQL语句。 ");
}
}
return(_Reader);
}

public void GetRead()
{
OleDbDataReader Reader=null;
Reader = Exe( "Select * From News ");

}