三层之D层数据库操作

前提:
三层中我们已经知道D层主要的作用是针对数据库,进行基本的操作(数据连接和增删该查功能)

1、基本的sql语句
查:SELECT 字段名列表 FROM 数据表名  where"条件"
增 INSERT INTO 表名(字段名1,字段名2..)VALUES("表达式1","表达式2")
该 UPDATE 表名 SET 字段名1 ="表达式1",字段名2 ="表达式2".... WHERE 字段名n ="表达式n"
删:DELETE FORM 表名 where "条件"

例子:

Select UserName ,Level from User_Table where UserID = "1"
Insert into User_Table(UserName,PassWord) values("liangliang","123abc")
Update User_Table set UserName= "liang",PassWord = "123" Where Level = "管理员" //如果没有where将对表中所有字段进行修改。
Delect from User_Table where UserName= "feng"

2 、基本的功能

<span style="font-size:18px;">Imports System.Data   '添加相关引用
Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Configuration


Public Class SqlserverUser
      '查询    通过输入的用户名和密码作为参数查看User_Table表中是否存在该用户。
    Public Function SelectUserByUserName(ByVal user As Model.User) As Model.User 
        Dim cnStr As String = "server = liangliangPC;database=ComChargeSys;user id = sa;password=123456;"
        Dim cn As SqlConnection = New SqlConnection(cnStr)


        Dim sql As String = "select * from User_Table where UserName=@UserName and Password = @Password"
        Dim cmd As SqlCommand = New SqlCommand(sql, cn)
        cmd.Parameters.Add(New SqlParameter("@UserName", user.UserName))
        cmd.Parameters.Add(New SqlParameter("@Password ", user.PassWord))


        cn.Open()
        Dim reader As SqlDataReader = cmd.ExecuteReader()
        Dim Duser As Model.User = New Model.User


        While reader.Read()        
            Duser.UserName = Trim(reader.GetString(reader.GetOrdinal("UserName")))
            Duser.PassWord = Trim(reader.GetString(reader.GetOrdinal("PassWord")))
            Duser.UserID = Trim(reader.GetString(reader.GetOrdinal("UserID")))
            Duser.Level = Trim(reader.GetString(reader.GetOrdinal("Level")))
            Duser.Head = Trim(reader.GetString(reader.GetOrdinal("Head")))
        End While
        Return Duser
    End Function
    
    '添加   新用户到数据库User_Table表中
    Public Sub AddUser(ByVal user As Model.User)
        Dim conn As String = ConfigurationManager.AppSettings("sqlconnect")   '从配置文件中获取连接字符串
        Dim cn As SqlConnection = New SqlConnection(conn)
        Dim sql As String = "insert into User_Table(UserName,PassWord,UserID,Level,Head)values(@UserName,@PassWord,@UserID,@Level,@Head)"
        Dim cmd As SqlCommand = New SqlCommand(sql, cn)


        cmd.Parameters.Add(New SqlParameter("@UserName", user.UserName))
        cmd.Parameters.Add(New SqlParameter("@PassWord", user.PassWord))
        cmd.Parameters.Add(New SqlParameter("@UserID", user.UserID))
        cmd.Parameters.Add(New SqlParameter("@Level", user.Level))
        cmd.Parameters.Add(New SqlParameter("@Head", user.Head))
        cn.Open()
        cmd.ExecuteNonQuery()
        MsgBox("用户注册成功!")


    End Sub   '也可以使用function过程返回一个boolean值,在B层根据boolean值的true orflase来做出相应的判断
  
    '修改   User_Table表中的用户
    Public Sub UpdateUser(ByVal user As Model.User)
         ... '内容与AddUser()中基本相同,只是更改下对应的sql语句,添加对应的参数,即可
    End Sub
    '删除   User_Table表中的用户
    Public Sub DeleteUser(ByVal user As Model.User)
         ... '内容与AddUser()中基本相同,只是更改下对应的sql语句,添加对应的参数,即可
    End Sub


End Class</span>

3总结:
         SqlserverUser类中的四个方法实现对User_Table表的基本操作(增删改查)。最后的两个方法Update和Delect在形式上和Add的内容一样,只是修改下对应的sql语句和参数即可,其他的内容可以通过复制Add方法中的内容实现,
       这只是对一个表的操作中就存在重复的现象,当我们要对别的表进行操作的时候重复的内容将会更多。
       编程的一个基本原则就是避免重复,我们要的不是复制而是复用,当采用复制的功能时候第一件要想到的就是代码的重构。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。