小弟初学三层结构,对于三层结构之间的调用问题还是很不明白,特来讨教!
程序如下:SQLServerDAL层有两个类,SysUser、SQLHelper,代码如下://SQLHelper类 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Configuration;namespace HUALUDISC.SQLServerDAL
{
    public abstract class SQLHelper
    {
        //数据库连接字符串
        public static readonly string Con = System.Configuration.ConfigurationSettings.AppSettings["SQLServer"];        //用于缓存参数的HASH表
        private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());       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);
            }
        }        public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
        {
            SqlCommand cmd = new SqlCommand();
            PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
            int val=cmd.ExecuteNonQuery();
            cmd.Parameters.Clear();
            return val;
        }}//SysUser类
namespace HUALUDISC.SQLServerDAL
{
    public class SysUser : ISysUser
    {
        private ArrayList arrSysUser;        public SysUser()
        {
            arrSysUser=new ArrayList();
        }        private const string SQL_SELECT="Select * From [SysUser] Order by [所在部门] ";
        private const string SQL_CHECK_UserLogin="Select * From [SysUser] Where [所在部门]=@Department, [用户名]=@UserName, [密码]=@Password ";
        private const string SQL_SELECT_ID = "Select * From [SysUser] Where [ID]=@ID";        private const string PARM_ID="@ID";
        private const string PARM_UserName="@UserName";
        private const string PARM_UserAllName="@UserAllName";
        private const string PARM_Descript="@Descript";
        private const string PARM_Department="@Department";
        private const string PARM_Password="@password";
        private const string PARM_Role="@Role";
        private const string PARM_Status="@Status";         public int SysUserLogin(string Department, string UserName, string Password)
        {
            //这里添加代码实现SQLHelper类里的ExecuteNonQuery()方法实现用户的登陆验证,我想用存储过程,如何实现啊??????
        }
    }
}

解决方案 »

  1.   

    验证不该写这层吧,我是用BLL层验证
      

  2.   

    你让别人如何回复,你都不知道自己该做什么,
    你那两个类一个是sql类,一个是访问类
      

  3.   

    在SysUser类时作用户登陆验证,在登陆时用户输入(所在部门,用户名,密码)后将在BLL里处理,但是,最终正直的处理还是要在SQLServerDAL层里处理对吧,我只是要示在SQLServerDAL层的SysUserLogin()函数里实现!
      

  4.   

    public bool CheckControlPopedom(string pPopedom, Model.SysParameter.User user)
            {
                SqlParameter[] parms = new SqlParameter[]
                {
                    new SqlParameter("@Popedom",SqlDbType.VarChar,50),
                    new SqlParameter("@AccountID",SqlDbType.Int,4)
                };
                parms[0].Value =pPopedom;
                parms[1].Value =user.AccountID;            try
                {
                    int popedomCount = (int)SQLHelper.ExecuteScalar(SQLHelper.SQLHelper_SqlConn, CommandType.StoredProcedure, "SYS_CheckControlPopedom", parms);                if(popedomCount>0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                catch
                {
                    throw;
                }
            }
      

  5.   

    我给了你一个,sql层调用存储过程的,希望对你有帮助。