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

调用数据层参数传递有关问题

2012-02-11 
调用数据层参数传递问题!假设要实现这样的功能:publicvoidchkuser(){stringsqlselect*fromTablewherenam

调用数据层参数传递问题!
假设要实现这样的功能:  
  public     void     chkuser()    
              {    
                              string     sql     =     "select     *     from     Table     where     name     =     @username ";    
                              SqlConnection     cn     =     new     SqlConnection(ConfigurationSettings.AppSettings[ "ConnStr "]);//ConnStr为数据库连接语句    
                              SqlCommand     cmd     =     new     SqlCommand(sql,cn);    
cmd.Parameters.Add( "@username ",SqlDbType.VarChar,50).Value=username.Text//username.Text为表单用户输入的用户名    
                              ............    
              }    
 
 
 
数据层:    
 
  public     static     SqlDataReader     ExecuteReader(string     sql,     SqlParameter[]     args)    
                              {    
                                              cn     =     new     SqlConnection(ConnStr);    
                                              cmd     =     new     SqlCommand(sql,cn);    
                                              foreach(SqlParameter[]     i     in     args)    
                                              {    
                                                              cmd.Parameters.Add(args);    
                                              }    
                                              try    
                                              {    
                                                              cn.Open();    


                                                              SqlDataReader     dr     =     cmd.ExecuteReader(CommandBehavior.CloseConnection);    
 
                                                              return     dr;    
                                              }    
                                              catch    
                                              {    
                                                              cn.Close();    
                                                              throw;    
                                              }    
                              }    
==========================================================================    
我的问题是我如何把@username,SqlDbType.VarChar,50         这3个参数传到数据层里面去,以便返回一个SqlDataReader对象?当然数据层的这个函数需要改动!

[解决办法]
一般三层体系中返回SqlDataReader对象比较麻烦,因为SqlDataReader需要永久连接,这样连接的关闭时机就很难把控
[解决办法]
数据层里取到的SqlParameter[]数组不就是你要执行的SQL语句的参数集合吗。 已经传进来了。

你想取出这些值的话就可以foreach取出来就可以了啊

热点排行