public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms) {
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
------------------------------------------------------------------------------------
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) { if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) {
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
------------------------------------------------------------------------------今天看petshop中这段代码,这里为什么cmd传给PrepareCommand中与这样的代码 int i=2;
//i最后的值还是2
private static void add(int i)
{
i=20;
}
为什么cmd可以加SqlParameter参数。是不是要ref这样关键字?这里有些不解。
有没有人能为我指点一下?谢谢!
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
------------------------------------------------------------------------------------
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) { if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) {
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
------------------------------------------------------------------------------今天看petshop中这段代码,这里为什么cmd传给PrepareCommand中与这样的代码 int i=2;
//i最后的值还是2
private static void add(int i)
{
i=20;
}
为什么cmd可以加SqlParameter参数。是不是要ref这样关键字?这里有些不解。
有没有人能为我指点一下?谢谢!
解决方案 »
- 求解关于web请求的问题
- 有一个网页文件,我想把它读取后,然后在最后的也就是</body>之前插入一段内容,怎么精确做到呢??
- 我的第一步在哪 ?
- 怎样更新xml文件的某个节点的Value?
- 急:要用ExecWB是不是一定得要装excel?
- 大侠救命:字符转换问题,急用!在线等待……
- 各位帮忙分析下它这个是什么投票系统,顺便借宝地帮女朋友拉票
- 寻求measurestring 不准的解决方案
- 自定义控件的问题
- ==为什么输出的文件下载流不提示打开,提示查找呢。==
- 请问我这个语句里面,怎么样说明他没有找到符合条件的值,谢谢大家了
- 请教研究petshop中遇到的2个问题:抽象类的用户控件和using语句。
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}用了这一句,是把SqlParameter遍历出来加到了SqlCommand语句里的
形参传给函数后,不会有变化吧。应该加关键字ref.就像这样的两段程序
---------------------------------------------------------------
int i=2;
add(i);//i最后的值还是2
private static void add(int i)
{
i=20;
} int i=2;
add(ref i);//i最后的值是20
private static void add(ref int i)
{
i=20;
}
----------------------------------------------------------
但是如果如下:
pbulci static int i=2;
add(20);//i最后的值就是20
private static void add(int ii)
{
i=ii;
}
就像这样的例子:最后test.aspx打出的结果还是1啊
test.aspx中:this.Response.Write(testclass.ExecuteNonQuery().ToString());
----------------------------------------testclass.cs中:
public abstract class testclass
{
//
// TODO: 在此处添加构造函数逻辑
// public static int ExecuteNonQuery()
{
int i=1;
PrepareCommand(i,20);
return i;
}
private static void PrepareCommand(int i,int j)
{
i=j;
}
}