2020年5月4日 星期一

[VB.NET] 於5種資料庫存取關鍵程式碼 [Database connection]


VB.NET5種資料庫存取關鍵程式碼(以OleDbDataAdapter方法查詢資料表)(以OleDb方法連線)
在網路上找到超好的方法大家可以試試看 . 適用於VB2010
 OleDbDataAdapter方法查詢資料表  OleDb方法連線

1.  顯示全部資料表內容複製程式碼


VB開頭前一定要加入這些東西

Imports System.Data

Imports System.Data.OleDb



接下來是連接程式 有ACCESS XLS 很多做法都在下面

       '連結資料庫
        '#######  Access 2003 (*.mdb)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.Oledb.4.0;Data source=資料庫名稱.mdb"
        ''#######  Access 2007 (*.accdb)  ##############
        Dim str As String = "Provider=Microsoft.ACE.Oledb.12.0;Data source=資料庫名稱.accdb"
        ''#######  Excel 2003 (*.xlx)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=資料庫名稱.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        ''#######  Excel 2008 (*.xlsx)  ##############
        'Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=資料庫名稱.xlsx;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
       '####### Windows 驗證登入帳戶 SQL Server 2005 ######################
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;Integrated Security=SSPI;"
        '####### SQL Server 驗證登入帳戶 SQL Server 2005 (2種方法) ##############
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        'Dim str As String = "Provider=SQLNCLI.1;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        ''#######  txt/csv  ################################
        '注意:若第一列有欄位名稱,則HDR=YES  (預設值為YES)(第一行當欄位名稱處理) 
        '注意:若第一列無欄位名稱,直接就是數據了,則HDR=NO (第一行當數據處理)
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Text;HDR=YES';Data Source=目錄名稱或是|DataDirectory|\"
        Dim conn As OleDbConnection = New OleDbConnection(str)
        conn.Open()

        '查詢資料
        Dim str1 As String = "select * from 資料表"
        Dim adp1 As OleDbDataAdapter = New OleDbDataAdapter(str1, conn)

        '將查詢結果放到記憶體set1上的"1a "表格內
        Dim set1 As DataSet = New DataSet
        adp1.Fill(set1, "1a")

        '將記憶體的資料集合存放到視窗畫面上的DataGrid
        DataGridView1.DataSource = set1.Tables("1a")

        '關閉資料庫的連結
        conn.Close()







2.  //查詢『某紀錄』複製程式碼

Imports System.Data
Imports System.Data.OleDb
    '連結資料庫
        '#######  Access 2003 (*.mdb)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.Oledb.4.0;Data source=資料庫名稱.mdb"
        ''#######  Access 2007 (*.accdb)  ##############
        Dim str As String = "Provider=Microsoft.ACE.Oledb.12.0;Data source=資料庫名稱.accdb"
        ''#######  Excel 2003 (*.xlx)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=資料庫名稱.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        ''#######  Excel 2008 (*.xlsx)  ##############
        'Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=資料庫名稱.xlsx;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
       '####### Windows 驗證登入帳戶 SQL Server 2005 ######################
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;Integrated Security=SSPI;"
        '####### SQL Server 驗證登入帳戶 SQL Server 2005 (2種方法) ##############
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        'Dim str As String = "Provider=SQLNCLI.1;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        ''#######  txt/csv  ################################
        '注意:若第一列有欄位名稱,則HDR=YES  (預設值為YES)(第一行當欄位名稱處理) 
        '注意:若第一列無欄位名稱,直接就是數據了,則HDR=NO (第一行當數據處理)
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Text;HDR=YES';Data Source=目錄名稱或是|DataDirectory|\"

        Dim conn As OleDbConnection = New OleDbConnection(str)
        conn.Open()

        '查詢資料
        Dim str1 As String = " Select * from 資料表 where name = 'jack'"
        Dim adp1 As OleDbDataAdapter = New OleDbDataAdapter(str1, conn)

        '將查詢結果放到記憶體set1上的"1a "表格內
        Dim set1 As DataSet = New DataSet
        adp1.Fill(set1, "1a")

        '將記憶體的資料集合存放到視窗畫面上的DataGridView
        DataGridView1.DataSource = set1.Tables("1a")

        '關閉資料庫的連結
        conn.Close()


注意

查詢

(a).SQL查詢『某紀錄』語法

   Select * from 1a where name = 'jack'

(b).當有變數時的SQL查詢語法(C#)

  "Select * from 資料表1 where PH = '" + TextBox1.Text + " '"

 適用於VB2010作法





3.  //關鍵字的方式查詢『某紀錄』複製程式碼

Imports System.Data
Imports System.Data.OleDb
    '連結資料庫
        '#######  Access 2003 (*.mdb)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.Oledb.4.0;Data source=資料庫名稱.mdb"
        ''#######  Access 2007 (*.accdb)  ##############
        Dim str As String = "Provider=Microsoft.ACE.Oledb.12.0;Data source=資料庫名稱.accdb"
        ''#######  Excel 2003 (*.xlx)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=資料庫名稱.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        ''#######  Excel 2008 (*.xlsx)  ##############
        'Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=資料庫名稱.xlsx;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
       '####### Windows 驗證登入帳戶 SQL Server 2005 ######################
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;Integrated Security=SSPI;"
        '####### SQL Server 驗證登入帳戶 SQL Server 2005 (2種方法) ##############
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        'Dim str As String = "Provider=SQLNCLI.1;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        ''#######  txt/csv  ################################
        '注意:若第一列有欄位名稱,則HDR=YES  (預設值為YES)(第一行當欄位名稱處理) 
        '注意:若第一列無欄位名稱,直接就是數據了,則HDR=NO (第一行當數據處理)
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Text;HDR=YES';Data Source=目錄名稱或是|DataDirectory|\"

        Dim conn As OleDbConnection = New OleDbConnection(str)
        conn.Open()

        '查詢資料
        Dim str1 As String = " Select * from 資料表 where name like '%jack%'"
        Dim adp1 As OleDbDataAdapter = New OleDbDataAdapter(str1, conn)

        '將查詢結果放到記憶體set1上的"1a "表格內
        Dim set1 As DataSet = New DataSet
        adp1.Fill(set1, "1a")

        '將記憶體的資料集合存放到視窗畫面上的DataGrid
        DataGridView1.DataSource = set1.Tables("1a")

        '關閉資料庫的連結
        conn.Close()


注意

查詢

(a).SQL查詢『某紀錄』語法

n   Select * from 1a where name like %jack%

(b).當有變數時的SQL查詢語法(C#)

n   Select * from 1a where name like % + textBox1.text + %

(c).當有變數時的SQL查詢語法(VB.NET

n   Select * from 1a where name like % & textBox1.text & %






4.  //刪除『某紀錄』複製程式碼

Imports System.Data
Imports System.Data.OleDb

        '連結資料庫
        '#######  Access 2003 (*.mdb)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.Oledb.4.0;Data source=資料庫名稱.mdb"
        ''#######  Access 2007 (*.accdb)  ##############
        Dim str As String = "Provider=Microsoft.ACE.Oledb.12.0;Data source=資料庫名稱.accdb"
        ''#######  Excel 2003 (*.xlx)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=資料庫名稱.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        ''#######  Excel 2008 (*.xlsx)  ##############
        'Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=資料庫名稱.xlsx;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
       '####### Windows 驗證登入帳戶 SQL Server 2005 ######################
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;Integrated Security=SSPI;"
        '####### SQL Server 驗證登入帳戶 SQL Server 2005 (2種方法) ##############
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        'Dim str As String = "Provider=SQLNCLI.1;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        ''#######  txt/csv  ################################
        '注意:若第一列有欄位名稱,則HDR=YES  (預設值為YES)(第一行當欄位名稱處理) 
        '注意:若第一列無欄位名稱,直接就是數據了,則HDR=NO (第一行當數據處理)
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Text;HDR=YES';Data Source=目錄名稱或是|DataDirectory|\"

        Dim conn As OleDbConnection = New OleDbConnection(str)
        conn.Open()

    '刪除資料庫內的記錄
    '設定刪除記錄的 SQL語法 及資料庫執行指令OleDbCommand
      Dim str1 As String = "delete * from 資料表 where name = 'jack'"

        Dim cmd As OleDbCommand = New OleDbCommand(str1, conn)

        '執行資料庫指令OleDbCommand
        cmd.ExecuteNonQuery()


        '關閉資料庫的連結
        conn.Close()

        '顯示成功刪除記錄的訊息()
        MessageBox.Show("成績刪除一筆記錄了", "成功刪除", MessageBoxButtons.OKCancel,MessageBoxIcon.Information)




刪除

(a).SQL刪除『某紀錄』語法

n   delete * from 1a where name = jack

(b).當有變數時的SQL刪除詢語法(C#)

n   delete * from 1a where name = + textBox1.text +

(c).當有變數時的SQL刪除語法(VB.NET

n   delete * from 1a where name = & textBox1.text &





5.  //新增『某紀錄』複製程式碼

Imports System.Data
Imports System.Data.OleDb
           
        '連結資料庫
        '#######  Access 2003 (*.mdb)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.Oledb.4.0;Data source=資料庫名稱.mdb"
        ''#######  Access 2007 (*.accdb)  ##############
        Dim str As String = "Provider=Microsoft.ACE.Oledb.12.0;Data source=資料庫名稱.accdb"
        ''#######  Excel 2003 (*.xlx)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=資料庫名稱.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        ''#######  Excel 2008 (*.xlsx)  ##############
        'Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=資料庫名稱.xlsx;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
       '####### Windows 驗證登入帳戶 SQL Server 2005 ######################
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;Integrated Security=SSPI;"
        '####### SQL Server 驗證登入帳戶 SQL Server 2005 (2種方法) ##############
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        'Dim str As String = "Provider=SQLNCLI.1;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        ''#######  txt/csv  ################################
        '注意:若第一列有欄位名稱,則HDR=YES  (預設值為YES)(第一行當欄位名稱處理) 
        '注意:若第一列無欄位名稱,直接就是數據了,則HDR=NO (第一行當數據處理)
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Text;HDR=YES';Data Source=目錄名稱或是|DataDirectory|\"

        Dim conn As OleDbConnection = New OleDbConnection(str)
        conn.Open()

    '新增記錄到資料庫內
    '設定新增記錄的 SQL語法 及資料庫執行指令OleDbCommand
    Dim str1 As String = "Insert Into 資料表(name,chi)Values('jack',90)"

        Dim cmd As OleDbCommand = New OleDbCommand(str1, conn)

        '執行資料庫指令OleDbCommand
        cmd.ExecuteNonQuery()


        '關閉資料庫的連結
        conn.Close()

        '顯示成功新增記錄的訊息()
        MessageBox.Show("成績新增一筆記錄了", "成功新增", MessageBoxButtons.OKCancel,MessageBoxIcon.Information)


新增

(a).SQL新增『某紀錄』語法

n   Insert Into 1a(name,chi)Values(jack,90)

(b).當有變數時的SQL新增語法(C#)

n   Insert Into 1a(name,chi)Values + textBoxName.text + , + Int32.Parse(textBoxName.text) + );

(c).當有變數時的SQL新增語法(VB.NET

n   Insert Into 1a(name,chi)Values & textBoxName.text & , & Int32.Parse(textBoxName.text) & );






6.  //修改『某紀錄』複製程式碼

Imports System.Data
Imports System.Data.OleDb

        '連結資料庫
        '#######  Access 2003 (*.mdb)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.Oledb.4.0;Data source=資料庫名稱.mdb"
        ''#######  Access 2007 (*.accdb)  ##############
        Dim str As String = "Provider=Microsoft.ACE.Oledb.12.0;Data source=資料庫名稱.accdb"
        ''#######  Excel 2003 (*.xlx)  ##############
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=資料庫名稱.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
        ''#######  Excel 2008 (*.xlsx)  ##############
        'Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=資料庫名稱.xlsx;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
       '####### Windows 驗證登入帳戶 SQL Server 2005 ######################
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;Integrated Security=SSPI;"
        '####### SQL Server 驗證登入帳戶 SQL Server 2005 (2種方法) ##############
        'Dim str As String = "Provider=sqloledb;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        'Dim str As String = "Provider=SQLNCLI.1;Data Source=伺服器名稱;Initial Catalog=資料庫名稱;User Id=帳戶名稱;Password=密碼;"
        ''#######  txt/csv  ################################
        '注意:若第一列有欄位名稱,則HDR=YES  (預設值為YES)(第一行當欄位名稱處理) 
        '注意:若第一列無欄位名稱,直接就是數據了,則HDR=NO (第一行當數據處理)
        'Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Text;HDR=YES';Data Source=目錄名稱或是|DataDirectory|\"

        Dim conn As OleDbConnection = New OleDbConnection(str)
        conn.Open()

        '修改資料庫內的記錄
        '   設定修改記錄的  SQL語法及資料庫執行指令OleDbCommand
        Dim str1 As String = "Update 資料表 set name = 'jack', chi = 90 where id_no='90001'"

        Dim cmd As OleDbCommand = New OleDbCommand(str1, conn)

        '執行資料庫指令OleDbCommand
        cmd.ExecuteNonQuery()


        '關閉資料庫的連結
        conn.Close()

        '顯示成功修改記錄的訊息()
        MessageBox.Show("成績修改一筆記錄了", "成功修改", MessageBoxButtons.OKCancel, MessageBoxIcon.Information)



修改

(a).SQL修改『某紀錄』語法

n   Update 1a set name = jack, chi = 90 where id_no=90001

(b).當有變數時的SQL修改語法(C#)

n   Update 1a set name = '" + textBoxName.Text + "', chi = " + Int32.Parse(textBoxChi.Text) + " where id_no=' " + textBoxNo.Text + "'";





B.注意2:什麼時候要用單引號『』,什麼時候不用加呢


n  字串字串前後要加上 單引號

 Values('" & txt_5_PrjCode.Text & "')


n  數值數值前後要不用加,但是所引用的textbox.text要先用Int32.Parse轉換成數值格式

Values(" & Int32.Parse (txt_5_Period.Text) & "')


n  日期字串前後要加上 單引號,所引用的textbox.text要先用DateTime.Parse轉換成日期格式

Values('" & DateTime.Parse(txt_5_BeginDay.Text) & "')


沒有留言:

張貼留言