首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

SqlParameterCollection 只接受非空的 SqlParameter 部类对象。 参数名: value

2012-06-21 
SqlParameterCollection 只接受非空的 SqlParameter 类型对象。 参数名: value我是个菜鸟,请各位大哥帮帮忙

SqlParameterCollection 只接受非空的 SqlParameter 类型对象。 参数名: value
我是个菜鸟,请各位大哥帮帮忙帮我看看,小妹不胜感激
代码:


/// <summary>
/// DBOperate 的摘要说明
/// </summary>
public class DBOperate
{
public DBOperate()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
  private SqlConnection conn=null;
  private SqlCommand cmd=null;
  private SqlDataReader dr = null;
  private SqlDataAdapter adp = null;
  private DataSet ds = null;
  private DataTable dt = null;

  //connect db
  public SqlConnection DBConnection()
  {
  conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BookShopConnectionString"].ConnectionString);
  return conn;
  }
  //close db , dispose resources
  public void DBClose()
  {
  if (conn.State == ConnectionState.Open)
  {
  conn.Close();
  conn.Dispose();
  }
  }
  //create command
  public SqlCommand createCommand(string str, CommandType cmdType)
  {
  cmd = new SqlCommand();
  cmd.Connection = DBConnection();
  cmd.CommandText = str;
  cmd.CommandType = cmdType;
  return cmd;
  }
  //create command with sqlParameters
  public SqlCommand createCommand(string str, CommandType cmdType, SqlParameter[] param)
  {
  cmd = new SqlCommand();
  cmd.Connection = DBConnection();
  cmd.CommandText = str;
  cmd.CommandType = cmdType;
  foreach (SqlParameter par in param)
  {
  cmd.Parameters.Add(par);
  }
  return cmd;
  }
  //execute dataReader
  public SqlDataReader executeReader(string str, CommandType cmdType)
  {
  conn = DBConnection();
  try
  {
  conn.Open();
  cmd = createCommand(str, cmdType);
  dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //if transfers dr.Close(), then will also transfer conn.Close()
  }
  catch (Exception ee)
  {
  throw ee;
  }
  return dr;
  }
  //execute dataReader with sqlParameters
  public SqlDataReader executeReader(string str, CommandType cmdType, SqlParameter [] param)
  {
  conn = DBConnection();
  try
  {
  conn.Open();
  cmd = createCommand(str, cmdType, param);
  dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); //if transfers dr.Close(), then will also transfer conn.Close()
  }
  catch (Exception ee)
  {
  throw ee;
  }
  return dr;
  }
  //execute dataSet
  public DataSet executeDataSet(string str, CommandType cmdType)
  {
  conn = DBConnection();
  try
  {
  conn.Open();
  cmd = createCommand(str, cmdType);
  adp = new SqlDataAdapter(cmd);
  ds = new DataSet();
  adp.Fill(ds);
  }
  catch (Exception ee)
  {
  throw ee;
  }
  finally
  {
  conn.Close();


  }
  return ds;
  }
  //execute dataSet with sqlParameters
  public DataSet executeDataSet(string str, CommandType cmdType, SqlParameter [] param)
  {
  conn = DBConnection();
  try
  {
  conn.Open();
  cmd = createCommand(str, cmdType, param);
  adp = new SqlDataAdapter(cmd);
  ds = new DataSet();
  adp.Fill(ds);
  }
  catch (Exception ee)
  {
  throw ee;
  }
  finally
  {
  conn.Close();
  }
  return ds;
  }
  //execute datatable
  public DataTable executeDataTable(string str, CommandType cmdType)
  {
  conn = DBConnection();
  try
  {
  conn.Open();
  cmd = createCommand(str, cmdType);
  adp = new SqlDataAdapter(cmd);
  ds = new DataSet();
  adp.Fill(ds);
  dt = ds.Tables[0];
  }
  catch (Exception ee)
  {
  throw ee;
  }
  finally
  {
  conn.Close();
  }
  return dt;
  }
  //execute datatable with sqlParameters
  public DataTable executeDataTable(string str, CommandType cmdType, SqlParameter [] param)
  {
  conn = DBConnection();
  try
  {
  conn.Open();
  cmd = createCommand(str, cmdType,param);
  adp = new SqlDataAdapter(cmd);
  ds = new DataSet();
  adp.Fill(ds);
  dt = ds.Tables[0];
  }
  catch (Exception ee)
  {
  throw ee;
  }
  finally
  {
  conn.Close();
  }
  return dt;
  }
 
  //execute nonQuery
  public void executeNonQuery(string str, CommandType cmdType)
  {
  conn = DBConnection();
  try
  {
  conn.Open();
  cmd = createCommand(str, cmdType);
  conn.Open();
  cmd.ExecuteNonQuery();
  }
  catch (Exception ee)
  {
  throw ee;
  }
  finally
  {
  conn.Close();
  }
  }
  //execute nonQuery with sqlParameters
  public void executeNonQuery(string str, CommandType cmdType, SqlParameter [] param)
  {
  conn = DBConnection();
  try
  {
  conn.Open();
  cmd = createCommand(str, cmdType,param);
  conn.Open();
  cmd.ExecuteNonQuery();
  }
  catch (Exception ee)
  {
  throw ee;
  }
  finally
  {
  conn.Close();
  }
  }
}


[解决办法]
没看到你给参数 SqlParameter 传值的地方,是不是传的null
------解决方案--------------------


这个helper的地方看不出什么问题,应该是你用某个函数的时候出错了。

例如你调用
 public SqlDataReader executeReader(string str, CommandType cmdType, SqlParameter [] param)

执行一个stored procedure,stored procedure期望有参数,但是你没有传参数进来,就会出现这种错误。
[解决办法]
提示参数非空的,你看一下是哪个地方传空了

热点排行