关于“三层结构”的调用问题

easywind8088 2008-09-23 03:34:26
小弟初学三层结构,对于三层结构之间的调用问题还是很不明白,特来讨教!
程序如下:



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()方法实现用户的登陆验证,我想用存储过程,如何实现啊??????


}
}
}
...全文
155 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
easywind8088 2008-09-24
  • 打赏
  • 举报
回复
看到了,非常感谢!
Aaron_Liu001 2008-09-24
  • 打赏
  • 举报
回复
我这几天在看三层结构,感觉其实比两层的要复杂,最重要的是可以分给不同的人分工去做。

一般第一层是访问数据库的,第二层是把业务逻辑抽象出来,纯处理数据逻辑的,第三层是界面录入层,调用第二层来展现数据。
abcyzq 2008-09-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 easywind8088 的回复:]
我的邮箱:microsmartech@hotmail.com
[/Quote]

我已经在7漏把代码贴了啊,你还要么四?
じоνё靁〃 2008-09-23
  • 打赏
  • 举报
回复
三层结构
界面类接收用户输入 ---〉逻辑类验证用户输入是否合法 ----〉数据类查询数据 ----〉结果返回给逻辑类 ------〉逻辑类处理结果返回界面类 ----〉界面类显示给用户看
easywind8088 2008-09-23
  • 打赏
  • 举报
回复
我的邮箱:microsmartech@hotmail.com
easywind8088 2008-09-23
  • 打赏
  • 举报
回复
好啊,谢谢!
abcyzq 2008-09-23
  • 打赏
  • 举报
回复
我给了你一个,sql层调用存储过程的,希望对你有帮助。
abcyzq 2008-09-23
  • 打赏
  • 举报
回复
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;
}
}
鲁虾 2008-09-23
  • 打赏
  • 举报
回复
那就再数据库访问层,中增加一个对存储过程访问的函数吧!
2008-09-23
  • 打赏
  • 举报
回复
界面上初始化数据调用逻辑层方法,逻辑层再调用数据层
easywind8088 2008-09-23
  • 打赏
  • 举报
回复
在SysUser类时作用户登陆验证,在登陆时用户输入(所在部门,用户名,密码)后将在BLL里处理,但是,最终正直的处理还是要在SQLServerDAL层里处理对吧,我只是要示在SQLServerDAL层的SysUserLogin()函数里实现!
hebeijg 2008-09-23
  • 打赏
  • 举报
回复
你让别人如何回复,你都不知道自己该做什么,
你那两个类一个是sql类,一个是访问类
DCD 2008-09-23
  • 打赏
  • 举报
回复
验证不该写这层吧,我是用BLL层验证
easywind8088 2008-09-23
  • 打赏
  • 举报
回复
高人何在???

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧