如何在DAL层访问UI层控件值
在练习使用三层架构:
在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;
}
}
}
}
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);
}
}
[解决办法]
UI层里调用SelectUser()方法,txtUserName.text.Trim()用参数形式传过来