日期:2014-05-19  浏览次数:20515 次

问一个关于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