private SqlCommand CreateCmd(string procName, params object[] ps)
{
OpenConnection();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = procName;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = mycon; SqlParameter[] sqlpa = null; if (ps != null)
{
SqlCommandBuilder.DeriveParameters(cmd);
cmd.Parameters.RemoveAt(0);
sqlpa = new SqlParameter[cmd.Parameters.Count];
cmd.Parameters.CopyTo(sqlpa, 0);
for (int i = 0; i < sqlpa.Length; ++i)
{
sqlpa[i].Value = ps[i];
}
}
return cmd; }cmd.Parameters.RemoveAt(0)是删除指定位置的参数,这里删除的是什么参数呢?
比如:
cmd.Parameters.Add(new SqlParameter("@a"));
cmd.Parameters.Add(new SqlParameter("@b"));
cmd.Parameters.Add(new SqlParameter("@c"));那么这样他删除掉的就是@a这个参数
cmd.Parameters.RemoveAt(0);
sqlpa = new SqlParameter[cmd.Parameters.Count];
cmd.Parameters.CopyTo(sqlpa, 0);
for (int i = 0; i < sqlpa.Length; ++i)
{
sqlpa[i].Value = ps[i];
}这个根本看不懂。