WEB_ADO项目中,在DAL层中调用SQL SERVER中的已经编译好的带有输入输出参数的存储过程的写法

最近在做一个网站的项目,为了提高执行的效率,就想采用ADO完成,使用中用到了存储过程,就学习一下如何使用

 

在DBHelper中,

View Code
 1  public void ExecuteProc(string sql, params SqlParameter[] pars)
 2         {
 3             using (SqlCommand cmd = new SqlCommand(sql, Connection))
 4             {
 5                 cmd.CommandType = CommandType.StoredProcedure;
 6                 if (pars != null)
 7                 {
 8                     cmd.Parameters.AddRange(pars);
 9                 }
10                 cmd.ExecuteNonQuery();
11             }
12         }

然后再DAL层中的写法

View Code
 1  public int Login(string id, string pwd)
 2         {
 3             SqlParameter[] para = new SqlParameter[]
 4             {
 5                  new SqlParameter("@loginId",SqlDbType.NVarChar),
 6                  new SqlParameter("@loginPass",SqlDbType.NVarChar),
 7                  new SqlParameter("@out",SqlDbType.Int)
 8             };
 9             para[0].Direction = ParameterDirection.Input;
10             para[1].Direction = ParameterDirection.Input;
11             para[2].Direction = ParameterDirection.Output;
12 
13             para[0].Value = id;
14             para[1].Value = pwd;
15 
16 
17             ConnDbForSQL conn = new ConnDbForSQL();
18             conn.ExecuteProc("sp_LoginByNC", para);
19 
20             int temp = Convert.ToInt32(para[2].Value);
21 
22             if (temp == 1)
23             {
24 
25                 return 1;
26             }
27             else
28                 return -1;
29         }

BLL中的写法:

View Code
 1  public bool manager(string id, string pwd)
 2         {
 3             string md5Pwd = MD5Helper.GetMD5Pwd(pwd);
 4 
 5             service ser = new service();
 6 
 7             int temp = ser.Login(id, md5Pwd);
 8 
 9             if (temp == 1)
10                 return true;
11             else
12                 return false;
13         }

关键的实现啦,然后就可以了。

 

关于这个还会不断的总结跟新。。。。。

posted @ 2013-01-08 14:42  殇琉璃  阅读(227)  评论(0编辑  收藏  举报