前面寫過一篇文章是DataGridView控件顯示數據的,DataGridView在與數據庫打交道時會經常出現,也很實用。通過DataGridView對數據庫進行更改和查詢都比較方便。 這里我們需要用DataGridView數據,并通過選中行將數據從數據庫中刪除。 其原理是把選中記錄的主
前面寫過一篇文章是DataGridView控件顯示數據的,DataGridView在與數據庫打交道時會經常出現,也很實用。通過DataGridView對數據庫進行更改和查詢都比較方便。
這里我們需要用DataGridView數據,并通過選中行將數據從數據庫中刪除。
其原理是把選中記錄的主鍵提取出來,然后傳給實體,通過實體給D層傳值實現對數據庫的修改。
下面是各層代碼,供大家參考。
接口層代碼都是D層的父類方法,這里只給出D層代碼:
'重寫刪除用戶接口方法 Public Function DelUser(user As Entity.LoginEntity) As Integer Implements IAddDel.DelUser Dim strSQL As String = "delete from User_info where userName=@username" Dim params() As SqlParameter = {New SqlParameter("@username", user.user_name)} Dim helper As New SqlHelper Dim int = helper.ExecuteNoQuery(strSQL, CommandType.Text, params) Return int End Function
Private Shared ReadOnly AssemblyName As String = "DAL" '聲明程序集名稱 Private Shared ReadOnly db As String = ConfigurationManager.AppSettings("DB") '讀取配置文件 Public Function AddDel() As IAddDel Dim className As String = AssemblyName + "." + db + "AddDelDAL" Dim iadddel As IAddDel iadddel = CType(Assembly.Load(AssemblyName).CreateInstance(className), IAddDel) '反射 Return iadddel End Function
'判斷是否刪除成功 Public Function IsDelUser(ByVal user As Entity.LoginEntity) As Boolean Dim int = iadddel.DelUser(user) If int = 1 Then Return True Else Return False End If End Function
Dim k As Integer = gvwUser.SelectedRows.Count Dim thisUser As New Entity.LoginEntity Dim ub As New BLL.AddDelBLL '判斷是否有選擇記錄 If k > 0 Then If MessageBox.Show("刪除用戶后將無法恢復!是否繼續刪除?", "提示", MessageBoxButtons.YesNo, _ MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then '從下往上刪,避免沙漏效應 For i As Integer = k To 1 Step -1 '獲取用戶名 thisUser.user_name = gvwUser.SelectedRows(i - 1).Cells("userName").Value.ToString '判斷選中用戶是否為登錄用戶 If thisUser.user_name = UserName Then MsgBox("當前用戶不能被刪除,請重新選擇!", vbOKOnly + vbExclamation, "系統提示") Exit Sub Else If ub.IsDelUser(thisUser) = True Then MsgBox("刪除成功!", vbOKOnly + vbInformation, "系統提示") Else MessageBox.Show("刪除失敗!", "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Error) End If '將從數據庫中刪除的信息從Datagridview1中刪除 gvwUser.Rows.RemoveAt(gvwUser.SelectedRows(i - 1).Index) End If Next End If Else MsgBox("請選中要刪除的行") Exit Sub End If End Sub
刪除前: 刪除后:
我們通過DataGridView對數據進行操作更加直觀,但是數據無價,操作數據庫時一定要謹慎!以免給我們帶來不必要的麻煩。必要時刪除前要給與提示,是否確定刪除,或者提高操作權限,方便操作的前提是保證數據的安全性!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com