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


         这几天做.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'定义一个DalUserDALUserInfo

            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

    第三种利用存储过程(正在研究中)

    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    mybatis遍历map
    程序员开发思考-1
    linux shell学习-1
    IDEA tomcat部署
    理解TCP/IP协议
    winform实现自定义折叠面板控件
    目录特殊符号导致的应用程序处于中断模式
    Vue-element-admin实现菜单根据用户权限动态加载
    基于EF的一个简单实战型分层架构
    Linux开启SELinux的情况下怎么解决nginx403跟502错误
  • 原文地址:https://www.cnblogs.com/iplus/p/4490465.html
Copyright © 2020-2023  润新知