读书人

怎么在DAL层访问UI层控件值

发布时间: 2013-10-23 11:39:13 作者: rapoo

如何在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;
}

}
}
}



我知道这里面还有很多问题,希望各位朋友能指出教导。

THX 三层架构 引用
[解决办法]
UI层中 调用SelectUser()这个方法
[解决办法]
还想是UI调用DAL吧?难道我记错了?
[解决办法]
string tsqlstring="SELECT ID,UserName,PassWord,Email FROM Users WHERE UserName='"+LoginUI.LoginForm.txtUserName.Text.Trim()+"' AND PassWord='"+LoginUI.LoginForm.txtPassWord.Text+"' ";
========
1。方法传入的两个参数: string userName ,string passWord 代码里怎么不用?
2。拼接SQL语句是大忌,参数化SQL才是正理
3。Login.Model.UserInfo uinfo = new Login.Model.UserInfo uinfo();
[解决办法]
public Login.Model.UserInfo SelectUser(string userName ,string passWord)
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去访问UI,那你还分层干嘛。
[解决办法]
把textbox的值,作为参数,传递到dal层
[解决办法]
应该是要验证用户名和密码把 dal层中就写带参数的查询方法就行
比如dal层中 checkUser(string Username,string password)
ui层中就直接调用就行dal.checkUser(txtUser.text.tostring,txtpassword.text.tostring)
[解决办法]
三架UI、BLL、DAL.
UI用BLL
BLL用DAL

UI代:
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);
}
}


[解决办法]
UI层里调用SelectUser()方法,txtUserName.text.Trim()用参数形式传过来

读书人网 >C#

热点推荐