您的位置:首页 > 其它

机房收费系统--用户级别查询

2012-09-14 21:30 295 查看
这几天做.NET版的机房收费系统的时候遇到了一个级别查询的问题关于DAL层我不怎么会写昨晚问了一下正权我终于会了,下面就贴出代码来
UI层:
'用来级别查询
Private SubcboOperatorLevel_SelectedIndexChanged(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles cboOperatorLevel.SelectedIndexChanged
Dim EUser As New Entity.UserInfo'定义一个登录用户实体类
Dim CheckUser As NewBLL.BLLAddOrDeleteUser '定义一个BLL层的BLLLogin类
Dim dt As New DataTable '定义一个DataTable
EUser.OperatorLevel =Trim(cboOperatorLevel.Text) '把级别传到EUser实体类里面
dt = CheckUser.CheckUser(EUser)'调用AddUser的CheckUser函数
gvwViewUserInfo.DataSource = dt'把DataTable的值传给Gvw控件
End Sub

BLL层
‘级别查询
FunctionCheckUser(ByVal User As Entity.UserInfo) As DataTable
Dim DalUser As NewDAL.DALUserInfo'定义一个DalUser为DALUserInfo类
Dim EUser As NewEntity.UserInfo'定义一个实体类
Dim dt As NewDataTable '定义一个DataTable
EUser.OperatorLevel =User.OperatorLevel'把U层的OperatorLevel属性传给实体类EUser
dt =DalUser.SelectLevel(EUser)’调用D层的SelectLevel方法
Return dt
End Function

最关键的是D层,D层由于用不同的方法就可以用同的SQL语句
D层

第一种普通的查询:
'连接数据库

Dim con As String = " data source=.;initial catalog=Charge_System;user id =sa; password=123456"

Dim conn As SqlConnection = New SqlConnection(con)

Public Function SelectLevel(ByVal User As Entity.UserInfo) As System.Data.DataTable
Dim strSql As String = "select OperatorID as 用户名,OperatorNameas 用户姓名,OperatorLevel as 用户级别 fromUser_Info where OperatorLevel =@OperatorLevel"‘SQL语句
Dim cmd As SqlCommand = NewSqlCommand(strSql, conn)
cmd.Parameters.Add(NewSqlParameter("@OperatorLevel", User.OperatorLevel))’把User.OperatorLevel的值传给@OperatorLevel
Dim sqlda As New SqlDataAdapter‘定义一个SqlDataAdapter
Dim ds As New DataSet’定义一个 DataSet
Dim dt As New DataTable’定义一个DataTable
Try
conn.Open()‘打开数据库


‘把查到的内容填充到DataTabel中
sqlda.SelectCommand= cmd
sqlda.Fill(dt)
cmd.ExecuteReader()

Return dt
Catch ex As Exception
Return dt
End Try

End Function

第二种,利用SQL视图
首先在数据库中建立一个视图,如图



然后D层代码为:
Dim strSql As String = "select * from V_User_Info where 用户级别=@OperatorLevel"‘SQL语句
Dim cmd As SqlCommand = NewSqlCommand(strSql, conn)
cmd.Parameters.Add(NewSqlParameter("@OperatorLevel", User.OperatorLevel))’把User.OperatorLevel的值传给@OperatorLevel
Dim sqlda As New SqlDataAdapter‘定义一个SqlDataAdapter
Dim ds As New DataSet’定义一个 DataSet
Dim dt As New DataTable’定义一个DataTable
Try
conn.Open()‘打开数据库


‘把查到的内容填充到DataTabel中
sqlda.SelectCommand= cmd
sqlda.Fill(dt)
cmd.ExecuteReader()

Return dt
Catch ex As Exception
Return dt
End Try

End Function
第三种利用存储过程(正在研究中)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: