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 }
关键的实现啦,然后就可以了。
关于这个还会不断的总结跟新。。。。。