首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-10-23 
如何在DAL层访问UI层控件值在练习使用三层架构:在DAL层中需要使用SQL语句,去查询获取值,查询的条件就是UI

如何在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()用参数形式传过来

热点排行