首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

NET的小疑点请看看,谢谢各位~

2012-03-23 
NET的小问题请看看,多谢各位~!using(SqlDataReaderdrSQLHelper.ExecuteReader(SQLHelper.CONN_STRING_NON

NET的小问题请看看,多谢各位~!
using   (SqlDataReader   dr   =   SQLHelper.ExecuteReader(SQLHelper.CONN_STRING_NON_DTC,   CommandType.Text,   SQL_LOGIN_ACCOUNT,   Parms))
                        {
                                if(dr.Read())
                                        return   new   sm_MUserInfo(dr.GetInt32(0),dr.GetString(1),dr.GetString(2);                              
                                return   null;
                        }


===========================ExecuteReader代码=======================
  public   static   SqlDataReader   ExecuteReader(string   connString,   CommandType   cmdType,   string   cmdText,params   SqlParameter[]   cmdParms)
                {
                        SqlCommand   cmd   =   new   SqlCommand();
                        SqlConnection   conn   =   new   SqlConnection(connString);

                        try
                        {
                                PrepareCommand(cmd,   conn,   null,   cmdType,   cmdText,   cmdParms);
                                SqlDataReader   rdr   =   cmd.ExecuteReader(CommandBehavior.CloseConnection);
                                cmd.Parameters.Clear();
                                return   rdr;

                        }
                        catch{
                                conn.Close();
                                return   null;
                        }

                }

==========================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);
                        }
                }

SQLHelper.CONN_STRING_NON_DTC:我设备了数据库的连接字段
SQL_LOGIN_ACCOUNT:写成是SELECT   *   From   UserInfo   Where   (UserName=@UserName)   and   (PassWord=@PassWord)

Parms:有二个参数都给定了值

为什么执行到ExecuteReader代码   中的SqlDataReader   rdr   =   cmd.ExecuteReader(CommandBehavior.CloseConnection);就报System.Data.SqlClient.SqlException   中第一次偶然出现的“System.Data.dll”类型的异常这个错误呢~~~!

我跟踪那些参数和状态都很正常呀,请问是怎么啦

[解决办法]
那你不要这么写就是了SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
[解决办法]
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connString);

改成
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(conn);

热点排行