0

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

4

1 回答 1

1

我假设你得到一个例外,因此你返回 null 而不是 a DataTable。如果你使用一个,你必须设置CommandType为。StoredProcedure

myCommand.CommandType = CommandType.StoredProcedure;

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

于 2013-03-12T19:02:45.377 回答