[C \ #] 7 층 로그 인 코드 정리
15759 단어 C#디자인 모드7 층 등록--C#기관실 요금 시스템 재 구성 판
B 층
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Factory;
using IDAL;
using System.Data;
namespace BLL
{
public class LoginBLL
{
public bool UserBLL(Entity.UserInfo UserInfo)
{
Factory.LoginFactory fact = new Factory.LoginFactory();//
IDAL.LoginIDAL idal = fact.CreateUser();//
DataTable table = idal.selectUser(UserInfo);
Boolean falg;
if (table.Rows.Count == 0)
{
falg = false;
}
else
{
falg = true;
}
return falg ;
}
}
}
D
public class LoginDAL :IDAL.LoginIDAL
{
public DataTable selectUser(Entity.UserInfo UserInfo)
{
sqlHelper sqlhelper = new sqlHelper();
SqlParameter[] sqlParams =
{new SqlParameter("@UserName" , UserInfo.UserName) ,
new SqlParameter("@PassWord" , UserInfo.PassWord)};
string sql = @"SELECT * FROM USERS WHERE UserName = @UserName and PassWord = @PassWord ";
DataTable table = sqlhelper.ExecuteQuery(sql,sqlParams,CommandType.Text );
return table;
}
}
sqlHelper
public class sqlHelper
{
private SqlConnection conn = null;
private SqlCommand cmd = null;
private SqlDataReader sdr = null;
public sqlHelper()
{
string connStr = ConfigurationManager.AppSettings["connStr"];
conn = new SqlConnection(connStr);
}
private SqlConnection GetConn()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
}
///
/// SQL
///
/// SQL
///
///
public int ExecuteNonQuery(string cmdText,CommandType ct)
{
int res;
try
{
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn.State==ConnectionState.Open)
{
conn.Close();
}
}
return res;
}
///
/// SQL
///
/// SQL
///
///
///
public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)
{
int res;
using (cmd=new SqlCommand(cmdText,GetConn()))
{
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
res = cmd.ExecuteNonQuery();
}
return res;
}
///
/// SQL
///
/// SQL
///
///
public DataTable ExecuteQuery(string cmdText, CommandType ct)
{
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
}
///
/// SQL
///
/// SQL
///
///
///
public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
{
DataTable dt = new DataTable();
cmd = new SqlCommand(cmdText, GetConn());
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
using (sdr=cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
dt.Load(sdr);
}
return dt;
}
}
实体层(Entity)存放全局的实体类,方便各个层之前的参数调用。代码就不都写了!
Facade
public class LoginFacade
{
public Boolean SelectUser(Entity.UserInfo UserInfo)
{
bool flag;
BLL.LoginBLL userBLL = new BLL.LoginBLL();
flag = userBLL.UserBLL(UserInfo);
return flag;
}
}
Factory
public class LoginFactory
{
//string AssemblyName = "DAL";
// , (DAL)
string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
//
public IDAL.LoginIDAL CreateUser()
{
string className = StrDB + "." + "LoginDAL";//DAL
return (IDAL.LoginIDAL)Assembly.Load(StrDB).CreateInstance(className);//
}
}
IDAL (인터페이스)
DataTable selectUser(Entity.UserInfo UserInfo);
UI (메 인 인터페이스 로그 인)
private void btnOK_Click(object sender, EventArgs e)
{
string UserName = txtUserName.Text.Trim();
string PassWord = txtPassWord.Text;
// 、
if (txtUserName.Text == string.Empty)
{
MessageBox.Show(" !", " ");
return;
}
else
{
if (txtPassWord.Text == string.Empty)
{
MessageBox.Show(" ", " ");
}
//
//try
//{
//
Facade.LoginFacade fLogin = new Facade.LoginFacade();
Entity.UserInfo user = new Entity.UserInfo();
user.UserName = Convert.ToString(txtUserName.Text.Trim());
user.PassWord = Convert.ToString(txtPassWord.Text);
Boolean falg = false;
falg = fLogin.SelectUser(user);
if (falg != false)
{
MessageBox.Show(" " + txtUserName.Text);
}
else
{
MessageBox.Show(" QAQ" + txtUserName.Text);
}
}
}
코드 부분 은 여기까지 정 리 했 습 니 다. 여러분 께 도움 이 되 셨 으 면 좋 겠 습 니 다!!!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.