问一个关于SqlHelper的问题.
我有一点不明白。
我在学习SqlHelper的时候`被一个问题搞得很郁闷。
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString)) {
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
这里定义了cmd。。但是并没有给他的属性进行设定。
但是我觉得。
似乎是PrepareCommand方法对cmd相关属性进行了设定。
但是PrepareCommand方法并没有任何返回类型。
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);
}
而程序执行完PrepareCommand方法之后就马上执行了
cmd.ExecuteNonQuery();
请问SqlHelper类的ExecuteNonQuery方法中的cmd的相关属性是怎么进行设定的?
如果是通过PrepareCommand方法设定的cmd属性。那么ExecuteNonQuery方法中是怎么得到PrepareCommand方法中的cmd的相关属性?PrepareComma