程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 三層之D層數據庫操作

三層之D層數據庫操作

編輯:C++入門知識

三層之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 、基本的功能

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

3總結:
SqlserverUser類中的四個方法實現對User_Table表的基本操作(增刪改查)。最後的兩個方法Update和Delect在形式上和Add的內容一樣,只是修改下對應的sql語句和參數即可,其他的內容可以通過復制Add方法中的內容實現,
這只是對一個表的操作中就存在重復的現象,當我們要對別的表進行操作的時候重復的內容將會更多。
編程的一個基本原則就是避免重復,我們要的不是復制而是復用,當采用復制的功能時候第一件要想到的就是代碼的重構。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved