国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
VB實(shí)例教程之操作Access數(shù)據(jù)庫(kù)

數(shù)日心血,無(wú)私奉獻(xiàn)!

1.解決了很多網(wǎng)友修改后datagridview1之后無(wú)法保存數(shù)據(jù)到數(shù)據(jù)庫(kù)的問(wèn)題!

先導(dǎo)入三個(gè)類,使后文寫代碼時(shí)簡(jiǎn)單,就是省去了包的路徑,可直接用類名

Imports System.Data.SqlClient
Imports System.Data
Imports System.Data.OleDb


Public Class Form1
    Dim odCnn As OleDbConnection'定義一個(gè)連接,用于打開(kāi)數(shù)據(jù)庫(kù),以便事先取出表名
    Dim odApter As OleDbDataAdapter'定義一個(gè)橋接器,介于內(nèi)存中DataSet表和數(shù)據(jù)庫(kù)之間,任何改變都在內(nèi)存中進(jìn)行,先不做實(shí)質(zhì)性動(dòng)作,直到需要確定了,才回發(fā)給數(shù)據(jù)庫(kù)做實(shí)質(zhì)性改動(dòng)。
    Dim dataPath As String'數(shù)據(jù)庫(kù)的路徑,含文件名
    Dim passWord As String’數(shù)據(jù)庫(kù)密碼
    Dim cnnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data source="‘用于連接的字符串 引擎
    Dim selectTabel As String'選定的要打開(kāi)的表,確定后才能打開(kāi)
    Dim sqlStr As String’查詢
    Dim dataSet As DataSet‘內(nèi)存中的虛擬的數(shù)據(jù)表,表的集合,有架構(gòu)
    Dim dataTable As DataTable’表,用于填充網(wǎng)格組件
    Dim openFileDlg As OpenFileDialog‘代碼創(chuàng)建的通用打開(kāi)對(duì)話框
    Dim dataGridView As DataGridView’用代碼創(chuàng)建的網(wǎng)格
    Dim CB As OleDbCommandBuilder‘能自動(dòng)生成保存信息的工具,就是它在后臺(tái)默默無(wú)聞地工作,才能夠在確定之后自動(dòng)完成保存任務(wù):就是網(wǎng)友大為困惑的無(wú)法將DataGridView1中修改的內(nèi)容保存數(shù)據(jù)庫(kù)的問(wèn)題。


    Function dlg(ByVal index As Integer) As String’自定義函數(shù),生成并調(diào)用打開(kāi)對(duì)話框,獲取數(shù)據(jù)庫(kù)的路徑
        openFileDlg = New OpenFileDialog‘創(chuàng)建實(shí)例 它是隱式的,不用加載到窗體上
        With openFileDlg’對(duì)一個(gè)對(duì)象進(jìn)行格式化操作,用With方面,運(yùn)行速度也快
            .Title = "張志晨數(shù)據(jù)庫(kù)程序V2012"‘對(duì)話框標(biāo)題,個(gè)性化設(shè)置,可無(wú)。
            .Filter = "Aaccess07-10數(shù)據(jù)庫(kù)|*.accdb|access97-03數(shù)據(jù)庫(kù)|*.mdb| 所有類型|*.*"’文件過(guò)濾器
            .FilterIndex = index‘默認(rèn)的要顯示的文件類型
            .ShowDialog()’顯示打開(kāi)對(duì)話框
            Return .FileName‘此函數(shù)有返回值,用Return 返回值并結(jié)束函數(shù)程序運(yùn)行
        End With
    End Function

'..........調(diào)用打開(kāi)對(duì)話框,獲取數(shù)據(jù)庫(kù)路徑

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = dlg(1)’調(diào)用打開(kāi)對(duì)話框,獲取數(shù)據(jù)庫(kù)路徑
        dataPath = Label1.Text‘把路徑給變量,方便使用
        passWord = ""’設(shè)置密碼,無(wú)則空
        cnnStr = cnnStr & dataPath & ";JET OLEDB:Database Password=" & passWord‘構(gòu)成完成的連接
        odCnn = New OleDbConnection(cnnStr)’創(chuàng)建連接器實(shí)例
        odCnn.Open()‘連接并在后臺(tái)打開(kāi)數(shù)據(jù)庫(kù)

        getTableName()’讀取庫(kù)的表名,并彈出窗體顯示表的個(gè)數(shù)

      End Sub

'.............................獲取表名的函數(shù)........
    Function getTableName()
        ' 獲取數(shù)據(jù)表列表
        'Type 有:"TABLE,VIEW,ACCESS TABLE,SYSTEM TABLE",
        Dim dt As DataTable’創(chuàng)建一個(gè)臨時(shí)用的表
        Dim i As Integer‘一個(gè)臨時(shí)用的計(jì)數(shù)器
        dt = odCnn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
                                     New Object() {Nothing, Nothing, Nothing, "TABLE"})’獲取所有的表信息,從中過(guò)濾出用戶創(chuàng)建的表
        'DataGridView2.DataSource = dt '.......顯示表的所有信息
        For i = 0 To dt.Rows.Count - 1 '記錄數(shù),也就是行數(shù)
            ComboBox1.Items.Add(dt.Rows(i).Item("TABLE_NAME"))‘顯示在列表框里
            '顯示字段名為 TABLE_NAME 列的行值 就是用戶創(chuàng)建的表的名
        Next
        ComboBox1.Text = ComboBox1.Items(0) '設(shè)置第一個(gè)表為列表框的值,也就是顯示第一個(gè)表
        MsgBox("數(shù)據(jù)庫(kù)中共有" & dt.Rows.Count & "個(gè)表")
    End Function

'.....................填充網(wǎng)格 顯示數(shù)據(jù),以便用戶觀察使用.......

    Function fillData()
        Dim sql As String = "select * from " & selectTabel '建立查詢 字符型
        odApter = New OleDb.OleDbDataAdapter(sql, odCnn) '橋接器
        dataSet = New DataSet '內(nèi)存中的虛擬數(shù)據(jù)庫(kù)實(shí)例
        odApter.Fill(dataSet, "table") '上面的實(shí)例被填充
        dataGridView.DataSource = dataSet.Tables("table")’填充
        dataGridView.AutoResizeColumns()‘可自動(dòng)生成需要的列
        dataGridView.AutoResizeRows()’行自適應(yīng)高度
  dataGridView.AutoResizeColumns()’列自適應(yīng)寬度

        '獲取字段名,并填充列表
        'sqlFm.getField()可以獲取指定的某一個(gè)表的字段,就是列名,列標(biāo)題。

        CB = New OleDb.OleDbCommandBuilder(odApter) '用于自動(dòng)記錄你對(duì)數(shù)據(jù)的更改,并形成保存方法備用
        If CB Is Nothing Then‘如果上一行自動(dòng)創(chuàng)建失敗,就用下一行的代碼人工創(chuàng)建
            CB.DataAdapter = New OleDb.OleDbDataAdapter
            odApter.DeleteCommand = CB.DataAdapter.DeleteCommand’刪除數(shù)據(jù)
            odApter.InsertCommand = CB.DataAdapter.InsertCommand‘插入數(shù)據(jù)
            odApter.UpdateCommand = CB.DataAdapter.UpdateCommand’修改數(shù)據(jù)
        End If
        MsgBox("共有記錄條數(shù):" & dataSet.Tables("table").Rows.Count, vbOKOnly, "打開(kāi)成功")
    End Function

    '創(chuàng)建一個(gè)網(wǎng)格
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dataGridView = New DataGridView‘創(chuàng)建網(wǎng)格實(shí)例
        Me.Controls.Add(dataGridView)’顯示對(duì)象
        With dataGridView‘定位網(wǎng)格,格式化
            .Top = 60
            .Left = 0
            .Width = Me.Width - 20
            .Height = Me.Height - 40 - 60
            .Visible = True
        End With

    End Sub

    '打開(kāi)指定的表
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        selectTabel = ComboBox1.Text
        fillData()’填充網(wǎng)格
    End Sub

'....................保存修改.......................................
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        save_sub()‘調(diào)用下面的函數(shù)
    End Sub
    '保存數(shù)據(jù)
    Function save_sub()
        Dim temptb As DataTable’創(chuàng)建一個(gè)臨時(shí)用的表
        temptb = dataGridView.DataSource.GetChanges() '獲取更改信息
        If temptb IsNot Nothing Then '如果有更改
            odApter.Update(dataGridView.DataSource) '就保存更改,在實(shí)質(zhì)上是把網(wǎng)格中的數(shù)據(jù)回發(fā)給數(shù)據(jù)庫(kù)
            MsgBox("您的更改已經(jīng)回發(fā)到數(shù)據(jù)庫(kù)!", , "通用數(shù)據(jù)庫(kù)程序")
        Else
            MsgBox("您沒(méi)有更改任何數(shù)據(jù)!", , "通用數(shù)據(jù)庫(kù)程序")
            Exit Function
        End If
    End Function
End Class



'..............以上為自學(xué)成果,注滿心血,但愿對(duì)網(wǎng)友有用..................................

 

 

2012.9.28增補(bǔ):

 

‘條件查詢(認(rèn)為是對(duì)列進(jìn)行篩選就行)
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim sr As New DataView
        sr = dataSet.Tables("table").DefaultView
        sr.RowFilter = ComboBox2.Text & "='" & TextBox1.Text & "'"
        ListBox1.DataSource = sr
    End Sub

 

 

’顯示你當(dāng)前正在操作(點(diǎn)擊)的單元格:
    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        'Dim i = DataGridView1.CurrentRow.Cells(4).Value '當(dāng)前行的第5列的數(shù)據(jù)

        'ar = DataGridView1.CurrentRow.Index ’選中的行是第幾行?
        'Dim i = DataGridView1.Rows(ar).Cells(3).Value()’由i決定的行的數(shù)據(jù),可用循環(huán)
        Dim i = DataGridView1.SelectedCells.Item(1).RowIndex
        MsgBox(i)

    End Sub

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
概括VB.NET Access數(shù)據(jù)庫(kù)連接
VB.Net自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)的實(shí)例
使用DataGridView進(jìn)行增刪改查,并同步到數(shù)據(jù)庫(kù)
[轉(zhuǎn)載]VB.net 對(duì)access數(shù)據(jù)庫(kù)進(jìn)行打開(kāi)、查找、填充Dat
VB.net數(shù)據(jù)庫(kù)編程(01):簡(jiǎn)單的入門實(shí)例
在VS2010Winform項(xiàng)目中使用RDLC報(bào)表定義文件、ReportViewer控件生...
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服