我已经创建了从数据库中获取数据的方法。此方法将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”
答案 0 :(得分:1)
我假设您正在获得一个excdeption,因此您返回null而不是DataTable
。如果您使用CommandType
,则必须将StoredProcedure
设置为myCommand.CommandType = CommandType.StoredProcedure;
。
NullReferenceException
当然,dbc
还有其他可能的原因,但您没有提供足够的信息。如果最后一行抛出异常,则注释executeSelect
为空。您可以使{{1}}静态或创建声明方法的类型的实例。