在练习使用三层架构:
在DAL层中需要使用SQL语句,去查询获取值,查询的条件就是UI层里的txtUserName.text.Trim()的值,如何获取?代码如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;namespace Login.DAL
{
public class UserDAO
{
public Login.Model.UserInfo SelectUser(string userName ,string passWord)
{
using(SqlConnection conn = new SqlConnection(DbUtil.connString))
{
conn.Open();
string tsqlstring="SELECT ID,UserName,PassWord,Email FROM Users WHERE UserName='"+LoginUI.LoginForm.txtUserName.Text.Trim()+"' AND PassWord='"+LoginUI.LoginForm.txtPassWord.Text+"' ";
SqlCommand cmd = new SqlCommand(conn, tsqlstring); SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet(); da.Fill(ds, "Users"); Login.Model.UserInfo uinfo = null;
uinfo.IDM = ds.Tables[0].Rows[0][0].ToString();
uinfo.UserNameM = ds.Tables[0].Rows[0][1].ToString();
uinfo.PassWordM = ds.Tables[0].Rows[0][2].ToString();
if (ds.Tables[0].Rows[0][3].ToString() != null)
{
uinfo.EmailM = ds.Tables[0].Rows[0][3].ToString();
}
return uinfo;
} }
}
}我知道这里面还有很多问题,希望各位朋友能指出教导。THX三层架构引用
在DAL层中需要使用SQL语句,去查询获取值,查询的条件就是UI层里的txtUserName.text.Trim()的值,如何获取?代码如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;namespace Login.DAL
{
public class UserDAO
{
public Login.Model.UserInfo SelectUser(string userName ,string passWord)
{
using(SqlConnection conn = new SqlConnection(DbUtil.connString))
{
conn.Open();
string tsqlstring="SELECT ID,UserName,PassWord,Email FROM Users WHERE UserName='"+LoginUI.LoginForm.txtUserName.Text.Trim()+"' AND PassWord='"+LoginUI.LoginForm.txtPassWord.Text+"' ";
SqlCommand cmd = new SqlCommand(conn, tsqlstring); SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet(); da.Fill(ds, "Users"); Login.Model.UserInfo uinfo = null;
uinfo.IDM = ds.Tables[0].Rows[0][0].ToString();
uinfo.UserNameM = ds.Tables[0].Rows[0][1].ToString();
uinfo.PassWordM = ds.Tables[0].Rows[0][2].ToString();
if (ds.Tables[0].Rows[0][3].ToString() != null)
{
uinfo.EmailM = ds.Tables[0].Rows[0][3].ToString();
}
return uinfo;
} }
}
}我知道这里面还有很多问题,希望各位朋友能指出教导。THX三层架构引用
========
1。方法传入的两个参数: string userName ,string passWord 代码里怎么不用?
2。拼接SQL语句是大忌,参数化SQL才是正理
3。Login.Model.UserInfo uinfo = new Login.Model.UserInfo uinfo();
string tsqlstring="SELECT ID,UserName,PassWord,Email FROM Users
WHERE UserName='"+userName +"' AND PassWord='"+passWord+"' ";在UI中var user = SelectUser(txtUserName.Text.Trim(),txtPassWord.Text);
比如dal层中 checkUser(string Username,string password)
ui层中就直接调用就行dal.checkUser(txtUser.text.tostring,txtpassword.text.tostring)
UI調用BLL
BLL調用DALUI層代碼:
using Business;
using Model;
protected void Login_Click(object sender,EventArgs e)
{
Business.User user=new Business.User();
string userName=txtUserName.text.Trim();
string password=txtPassword.text.Trim();
Model.UserInfo userEntity=user.SelectUser(userName,password);
}BLL層代碼:
using Model;
using DAL;
public class user
{
private UserDAO userDao=new UserDAO();
public UserInfo SelectUser(string userName ,string passWord)
{
return userDao.SelectUser(userName,password);
}
}