我有一点不明白。
我在学习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的相关属性?PrepareCommand是没有返回类型的方法。。
我实在想不通```郁闷`。。麻烦高手?
谢谢咯!
我在学习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的相关属性?PrepareCommand是没有返回类型的方法。。
我实在想不通```郁闷`。。麻烦高手?
谢谢咯!
{
static void Main(string[] args)
{
TextClass c1 = new TextClass();
c1.Str = "初始值";
Console.WriteLine(c1.Str);
ChangeStr(c1);
Console.WriteLine(c1.Str);
Console.Read();
} private static void ChangeStr(TextClass c1)
{
c1.Str = "修改过的值";
}
} class TextClass
{
private String str; public String Str
{
get { return str; }
set { str = value; }
} }程序输出:
初始值
修改过的值
SqlCommand cmd = new SqlCommand();在方法PrepareCommand的参数里实际上是传的cmd的引用(地址)
在PrepareCommand里操作的参数cmd和实际cmd是一个地址的对象.
估计这位老兄以前学的c,c++之类的语言