DbCommand comm = Conn.CreateCommand();
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "VODCategoryDelete";
DbParameter paramIn = comm.CreateParameter();
paramIn.ParameterName = "@ID";
paramIn.Value = id.Value;
paramIn.Direction = ParameterDirection.Input;
comm.Parameters.Add(paramIn);
DbParameter paramOut = comm.CreateParameter();
paramIn.ParameterName = "@Result";
paramIn.Direction = ParameterDirection.Output;
comm.Parameters.Add(paramOut);
comm.ExecuteNonQuery();
声明的参数名称是 paramOut ,赋值的时候用了 paramIn,导致参数被覆盖
id.value 的值是什么.?不会是空值吧.?
Parameters使用的时候需要先实例化啊,这是地址引用,你第二次赋值,肯定就把第一次的参数给覆盖掉了,当然就找不到@ID了。
DbParameter paramOut = comm.CreateParameter(); 这样不算是创建了一个新对象吗?那Dbparameter怎样创建一个新对象,请指教。
@一品带刀侍卫: 呵呵,不好意思,看掉了这句~哈哈~
DbParameter paramOut = comm.CreateParameter();
paramIn.ParameterName = "@Result";
paramIn.Direction = ParameterDirection.Output;
comm.Parameters.Add(paramOut);
comm.ExecuteNonQuery();
这块代码中,声明的参数名称是 paramOut ,赋值的时候却不小心用了 paramIn,导致参数被覆盖。唉,惭愧啊