2 u014427515 u014427515 于 2015.07.18 12:46 提问

C# 构造函数返回一个对象的问题
 public object Obj_sqlcomm(string sqlcmd)
    {
        sqlconn.Open();
        SqlCommand sqlcommd = new SqlCommand(sqlcmd, sqlconn);
        sqlcommd.ExecuteNonQuery();
        SqlDataReader readsql = sqlcommd.ExecuteReader();
        return readsql;
    }

我最近在做一个小项目,按照我学习软件工程项目管理的模块化思想去做一个小项目,在 object 数据类型的 return 时我遇到一个难题。
上面这段代码这样,我打算让这个构造函数返回一个 SqlDataReader 对象。
但是,我发现,上面的代码好像返回的是 object 对象,而不是 SqlDataReader 对象,如何才能狗让 这个构造函数返回一个 SqlDataReader 呢?

2个回答

guwei4037
guwei4037   Ds   Rxr 2015.07.18 12:56
已采纳

直接让方法的返回值为SqlDataReader即可。

public SqlDataReader Obj_sqlcomm(string sqlcmd)
{
sqlconn.Open();
SqlCommand sqlcommd = new SqlCommand(sqlcmd, sqlconn);
sqlcommd.ExecuteNonQuery();
SqlDataReader readsql = sqlcommd.ExecuteReader();
return readsql;
}

    如果是你上面的object的话,其实也可以。

    SqlDataReader sdr = (SqlDataReader)Obj_sqlcomm("xxx");
showbo
showbo   Ds   Rxr 2015.07.18 12:51

返回值改为SqlDataReader就好了。。要不你还要自己转换过类型,因为是object,无法直接使用SqlDataReader的方法

  public SqlDataReader Obj_sqlcomm(string sqlcmd)
    {
        sqlconn.Open();
        SqlCommand sqlcommd = new SqlCommand(sqlcmd, sqlconn);
        //sqlcommd.ExecuteNonQuery();
        SqlDataReader readsql = sqlcommd.ExecuteReader();
        return readsql;
    }
Csdn user default icon
上传中...
上传图片
插入图片