无法在对象中获取Datatable返回类型

本文关键字:获取 Datatable 返回类型 对象 | 更新日期: 2023-09-27 18:03:29

我已经创建了从数据库获取数据的方法。此方法的返回类型为DataTable。当试图调用这个方法时,它抛出了对象引用的异常。没有设置对象的实例。这是方法和我如何使用它。

 public DataTable executeSelect (String _query, SqlParameter[] sqlParameter)
    {
        SqlCommand myCommand = new SqlCommand();
        DataTable dataTable = new DataTable();
        dataTable = null;
        DataSet ds = new DataSet();
        try
        {
            myCommand.Connection = openConnection();
            myCommand.CommandText = _query;
            myCommand.Parameters.AddRange(sqlParameter);
            myCommand.ExecuteNonQuery();
            myadapter.SelectCommand = myCommand;
            myadapter.Fill(ds);
            dataTable = ds.Tables[0];
        }
        catch (SqlException e)
        {
            Console.Write( e.StackTrace.ToString());
            return null;
        }
        finally
        {
        }
        return dataTable;
    }

下面的代码显示了如何使用上述方法生成数据表

            string sp_name = "sLot";
            SqlParameter[] param = new SqlParameter[]{
                 new SqlParameter("@stype","ML"),
                new SqlParameter("@ttype","B"),
                new SqlParameter("@code",comp_code)
            };               
            DataTable data = dbc.executeSelect(sp_name, param); 

注意:这使用存储过程名称"sLot">

无法在对象中获取Datatable返回类型

我假设您正在获得一个excdeption,因此您返回null而不是DataTable。如果使用CommandType,则必须将其设置为StoredProcedure

myCommand.CommandType = CommandType.StoredProcedure;

当然,NullReferenceException还有其他可能的原因,但您还没有提供足够的信息。如果最后一行在注释dbc为null时抛出异常。您可以将executeSelect设置为静态的,也可以创建声明该方法的类型的实例。