无法获取Datatable返回类型到对象

时间:2013-03-12 18:57:31

标签: c# database winforms datatable

我已经创建了从数据库中获取数据的方法。此方法将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”

1 个答案:

答案 0 :(得分:1)

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

NullReferenceException

当然,dbc还有其他可能的原因,但您没有提供足够的信息。如果最后一行抛出异常,则注释executeSelect为空。您可以使{{1}}静态或创建声明方法的类型的实例。