cmd.Parameters.RemoveAt(0)在存储过程中的作用
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)是删除指定位置的参数,这里删除的是什么参数呢? --------------------编程问答-------------------- 这里是移除第一个参数 --------------------编程问答--------------------
问题是删除什么参数,打个比方。 --------------------编程问答-------------------- 最近访问csdn的用户不多啊。 --------------------编程问答--------------------
你这里参数一个都没写出来,我哪知道删除哪个,只能告诉你删除掉第一个。
比如:
cmd.Parameters.Add(new SqlParameter("@a"));
cmd.Parameters.Add(new SqlParameter("@b"));
cmd.Parameters.Add(new SqlParameter("@c"));
那么这样他删除掉的就是@a这个参数 --------------------编程问答-------------------- 不要使用这类有严重设计bug的所谓SQLHelper程序。你不如自己正常使用ADO.NET写代码,会更简单和清晰。 --------------------编程问答-------------------- 编程就是这样,如果你知道深一层的道理,而对皮毛没有时间去纠结它,那么你就应该另外写一个,而不要模仿劣质的代码。
作为一个团队的项目经理也不应该揪住一点皮毛不放,程序员可以用多种方式操作数据库,如果你觉得一个人写的不好你直接删除他的代码就好了(只要你是每一两天就去看别人的代码,就会很清楚别人的代码)。 --------------------编程问答--------------------
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];
}
这个根本看不懂。
补充:.NET技术 , C#