在我們日常生活當中,數據庫一詞往往離不開我們的編程界,在學校、倉庫等方面起著存儲數據及數據關系作用的文件。相較于Excel,Access可以存儲無限多的記錄,內容也十分豐富,例如文本、數字、日期、T&F等。而且不需要額外的轉換數據即可被.net讀取使用(難道不是已經封裝好了嗎doge),好了開始我們今天的教學。
如題,我們需要完成幾項工作
一、安裝Office2016,也可以單獨安裝Access2016,新建數據庫
二、如果安裝順利那么就不需要安裝“引擎”,因為本人安裝完之后VS閃退后來卸載,然后重裝Office解決。主要是在這一步栽的人比較多,不懂的可以評論或私信解決哦
?三、打開VS,新建項目,設計窗體
?1、學生表
?我們做數據庫開發會使用到DataGridView控件,用來顯示查詢結果和預覽。
2、課程表
3、父窗體MDI容器
四、開始編寫代碼
1、主窗體:(窗口管理器)
Public Class 窗口管理器Private Sub 學生表ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 學生表ToolStripMenuItem.Click學生表.MdiParent = Me學生表.Show()End SubPrivate Sub 課程表ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 課程表ToolStripMenuItem.Click課程表.MdiParent = Me課程表.Show()End Sub
End Class
盡量使用英文做變量名,此處為了直觀。
2、學生表
全局變量聲明
Dim objDa As New OleDb.OleDbDataAdapter
Dim objDs As New DataSet
Dim objXSTable As DataTable
全局過程聲明:
Sub Reload()objDa.Update(objDs, "xsb1")objXSTable.Clear()Bind()End SubSub Bind()Dim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\學生信息管理系統\學生信息.accdb'"objComm.CommandText = "SELECT * from 學生表 "objComm.Connection = objConnobjDa.SelectCommand = objCommDim builder As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(objDa)objConn.Open()objDa.Fill(objDs, "xsb1")objXSTable = objDs.Tables("xsb1")objConn.Close()DataGridView1.DataSource = objDs.Tables("xsb1")End Sub
窗體加載時,我們要先填充表格(初始化)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandDim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\學生信息管理系統\學生信息.accdb'"objComm.CommandText = "SELECT * from 學生表"objComm.Connection = objConnobjDa.SelectCommand = objCommobjConn.Open()objDa.Fill(objDs, "xsb")objConn.Close()DataGridView1.DataSource = objDs.Tables("xsb")Bind()End Sub
錄入一條記錄:(注意,不管時錄入還是修改,主鍵的內容都不可以為空!)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click' Dim objConn As New OleDb.OleDbConnection' Dim objComm As New OleDb.OleDbCommand' objConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;'Data Source='G:\桌面\學生信息管理系統\學生信息.accdb'"Dim myRow As DataRow = objXSTable.NewRow()myRow("學號") = TextID.TextmyRow("姓名") = TextName.TextmyRow("性別") = Combo1.SelectedItemmyRow("出生日期") = DatePicker.ValuemyRow("選課(專業)") = TextOptionClass.TextmyRow("是否為藝考生") = CheckBox1.CheckedmyRow("學分") = TextScore.TextmyRow("備注") = TextTip.TextobjXSTable.Rows.Add(myRow)Reload()End Sub
修改
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.ClickDim index As Integer = DataGridView1.CurrentRow.IndexobjXSTable.Rows.Item(index).Item(0) = TextID.TextobjXSTable.Rows.Item(index).Item(1) = TextName.TextobjXSTable.Rows.Item(index).Item(2) = Combo1.SelectedItemobjXSTable.Rows.Item(index).Item(3) = DatePicker.ValueobjXSTable.Rows.Item(index).Item(4) = TextOptionClass.TextobjXSTable.Rows.Item(index).Item(5) = CheckBox1.CheckedobjXSTable.Rows.Item(index).Item(6) = TextScore.TextobjXSTable.Rows.Item(index).Item(7) = TextTip.TextReload()
End Sub
刪除一條記錄
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.ClickDim index As Integer = DataGridView1.CurrentRow.IndexobjXSTable.Rows.Item(index).Delete()Reload()End Sub
清理文本框內的數據(不影響數據庫)
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.ClickTextID.Text = ""TextName.Text = ""Combo1.SelectedIndex = -1DatePicker.Value = #2000/01/01#TextOptionClass.Text = ""CheckBox1.Checked = FalseTextScore.Text = ""TextTip.Text = ""
End Sub
查詢(模糊查詢,簡單的SQL語句)
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickDim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandDim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\學生信息管理系統\學生信息.accdb'"If FRid.Checked = True ThenobjComm.CommandText = "SELECT * from 學生表 where 學號 like '%" & FTid.Text & "%'"ElseIf FRName.Checked = True ThenobjComm.CommandText = "SELECT * from 學生表 where 姓名 like '%" & FTName.Text & "%'"End IfobjComm.Connection = objConnobjDa.SelectCommand = objCommobjConn.Open()objDa.Fill(objDs, "xsb")objConn.Close()DataGridView1.DataSource = objDs.Tables("xsb")End Sub
點擊表格任意一個單元格(立馬填充到左下角的編輯區域,但注意主鍵不能為空,本人沒有做錯誤處理)
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClickTextID.Text = DataGridView1.CurrentRow.Cells(0).Value.ToStringTextName.Text = DataGridView1.CurrentRow.Cells(1).Value.ToStringCombo1.SelectedItem = DataGridView1.CurrentRow.Cells(2).Value.ToStringCombo1.Text = DataGridView1.CurrentRow.Cells(2).Value.ToStringDatePicker.Value = DataGridView1.CurrentRow.Cells(3).ValueTextOptionClass.Text = DataGridView1.CurrentRow.Cells(4).Value.ToStringCheckBox1.Checked = DataGridView1.CurrentRow.Cells(5).ValueTextScore.Text = DataGridView1.CurrentRow.Cells(6).Value.ToStringTextTip.Text = DataGridView1.CurrentRow.Cells(7).Value.ToString
End Sub
3、課程表,類似于學生表。
Imports System.Windows.Forms.VisualStyles.VisualStyleElement.ButtonPublic Class 課程表Dim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetDim objXSTable As DataTablePrivate Sub 課程表_Load(sender As Object, e As EventArgs) Handles MyBase.LoadDim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandDim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\學生信息管理系統\學生信息.accdb'"objComm.CommandText = "SELECT * from 課程表"objComm.Connection = objConnobjDa.SelectCommand = objCommobjConn.Open()objDa.Fill(objDs, "kcb")objConn.Close()DataGridView1.DataSource = objDs.Tables("kcb")Bind()End SubSub Reload()objDa.Update(objDs, "kcb1")objXSTable.Clear()Bind()End SubSub Bind()Dim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\學生信息管理系統\學生信息.accdb'"objComm.CommandText = "SELECT * from 課程表 "objComm.Connection = objConnobjDa.SelectCommand = objCommDim builder As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(objDa)objConn.Open()objDa.Fill(objDs, "kcb1")objXSTable = objDs.Tables("kcb1")objConn.Close()DataGridView1.DataSource = objDs.Tables("kcb1")End SubPrivate Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.ClickTextID.Text = ""TextName.Text = ""End SubPrivate Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.ClickDim index As Integer = DataGridView1.CurrentRow.IndexobjXSTable.Rows.Item(index).Delete()Reload()End SubPrivate Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.ClickDim index As Integer = DataGridView1.CurrentRow.IndexobjXSTable.Rows.Item(index).Item(0) = TextID.TextobjXSTable.Rows.Item(index).Item(1) = TextName.TextEnd SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim myRow As DataRow = objXSTable.NewRow()myRow("課程編號") = TextID.TextmyRow("課程名稱") = TextName.TextobjXSTable.Rows.Add(myRow)Reload()End SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickDim objConn As New OleDb.OleDbConnectionDim objComm As New OleDb.OleDbCommandDim objDa As New OleDb.OleDbDataAdapterDim objDs As New DataSetobjConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;
Data Source='G:\桌面\學生信息管理系統\學生信息.accdb'"If FRid.Checked = True ThenobjComm.CommandText = "SELECT * from 課程表 where 課程編號 like '%" & FTid.Text & "%'"ElseIf FRName.Checked = True ThenobjComm.CommandText = "SELECT * from 課程表 where 課程名稱 like '%" & FTName.Text & "%'"End IfobjComm.Connection = objConnobjDa.SelectCommand = objCommobjConn.Open()objDa.Fill(objDs, "kcb")objConn.Close()DataGridView1.DataSource = objDs.Tables("kcb")End SubPrivate Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClickTextID.Text = DataGridView1.CurrentRow.Cells(0).Value.ToStringTextName.Text = DataGridView1.CurrentRow.Cells(1).Value.ToStringEnd Sub
End Class
本系統由于是初級階段,沒有表與表之間的關系,目前屬于孤立階段,但是簡單的錄入、修改和查詢已經可以實現。
等待下一次更新!