1. 程式人生 > >vb獲取、建立資料庫及包含表和欄位名

vb獲取、建立資料庫及包含表和欄位名

Option Explicit
Dim isConnect As Boolean '判斷資料庫是否連線成功
Dim ConADODB As New ADODB.Connection '用於連線MASTER系統資料庫
Dim ResADODB As New ADODB.Recordset '用於獲取所有資料庫
'Dim ConADODB As New ADODB.Connection '用於連線使用者資料庫
Private Sub CboChooseDatabase_Click() '選擇資料庫,得到該資料庫所有的表(只操作使用者表)
    Dim rs As New ADODB.Recordset
    Call ConnectDatabase(CboChooseDatabase.Text, ConADODB)
    CboTable.Clear
    Dim criteria(3) As Variant
    criteria(0) = CboChooseDatabase.Text
    criteria(1) = Empty
    criteria(2) = Empty
    criteria(3) = "table"
    Set rs = ConADODB.OpenSchema(adSchemaTables, criteria)
    While Not rs.EOF
        CboTable.AddItem (rs!TABLE_NAME)
        rs.MoveNext
    Wend
    CboTable.Text = CboTable.List(0)
    Call CboTable_Click
    Dim i As Integer
    rs.Close
    ConADODB.Close
End Sub
Private Sub CboTable_Click() '選擇表,得到表中所有欄位名稱
    Dim strSql As String
    Dim rs As New ADODB.Recordset
    Call ConnectDatabase(CboChooseDatabase.Text, ConADODB)
    strSql = " Select Name FROM SysColumns Where id=Object_Id('" & CboTable.Text & "')"
    rs.Open strSql, ConADODB
    CboTableField.Clear
    Do While Not rs.EOF
        CboTableField.AddItem rs!Name
        rs.MoveNext
    Loop
    CboTableField.Text = CboTableField.List(0)
    rs.Close
    ConADODB.Close
End Sub
Private Sub CboTableField_Click()
    TxtFieldName.Text = CboTableField.Text
End Sub

Private Sub CmdAlterDatabaseName_Click() '修改資料庫名稱
    Dim strOldName As String
    Dim strNewName As String
    Dim strSql As String
    strOldName = CboChooseDatabase.List(CbxIndex)
    strNewName = CboChooseDatabase.Text
    strSql = "Exec sp_renamedb '" & strOldName & "','" & strNewName & "' "
    Call ConnectSting
    ConADODB.Execute strSql
    ConADODB.Close
End Sub
Private Sub CmdAlterTable_Click() '修改表的名稱,該表必須存在
    Dim strOldName As String
    Dim strNewName As String
    Dim strSql As String
    strOldName = CboChooseDatabase.List(CbxIndex)
    strNewName = CboChooseDatabase.Text
    strSql = "Exec sp_renamedb '" & strOldName & "','" & strNewName & "' "
    ConADODB.Execute strSql
End Sub

'建立一個新的資料庫
Private Sub CmdCreateDatabase_Click()
    Dim strNewDatabaseName As String
    Dim strSql As String
    Dim i As Integer
    strNewDatabaseName = CboChooseDatabase.Text
    For i = 0 To CboChooseDatabase.ListCount - 1
        If CboChooseDatabase.List(i) = strNewDatabaseName Then
            MsgBox "該資料庫已經存在,請重新命名資料庫!"
            Exit Sub
        End If
    Next i
    If Len(Trim(CboChooseDatabase.Text)) > 0 Then
        CboChooseDatabase.AddItem (strNewDatabaseName)
        Dim strNameData, strFileNameDataMdf As String
        Dim strNameLog, strFileNameLogLdf As String
        strNameData = strNewDatabaseName & "_data"
        strFileNameDataMdf = "D:\" & strNameData & ".mdf"
        strNameLog = strNewDatabaseName & "_log"
        strFileNameLogLdf = "D:\" & strNameLog & ".ldf"
        strSql = "create database " & strNewDatabaseName & " on primary(name=" & strNameData & ",filename='" & strFileNameDataMdf & "'"
        strSql = strSql & ",size=5mb,maxsize=100mb,filegrowth=10%)log on(name=" & strNameLog & ",filename='" & strFileNameLogLdf & "',size=5mb,maxsize"
        strSql = strSql & "=100mb,filegrowth=10%)"
        Call ConnectSting
        ConADODB.Execute strSql
        MsgBox "資料庫建立成功!"
    Else
        MsgBox "資料庫名稱不能為空,請命名!"
    End If
    ConADODB.Close
End Sub

Private Sub CmdDelDatabase_Click() '刪除資料庫,不能刪除系統資料庫
    Dim strDataName As String
'    Dim ConADODB As New ADODB.Connection
'    On Error GoTo err
'        ConADODB.State
    strDataName = CboChooseDatabase.Text
    Dim strSql As String
    If strDataName <> "master" And strDataName <> "model" And strDataName <> "msdb" And strDataName <> "tempdb" And Mid(strDataName, 1, 13) <> "ReportServer$" Then
        strSql = "drop database " & strDataName & ""
        Call ConnectSting
        ConADODB.Execute strSql
        CboChooseDatabase.Clear
        Call InitDB
    Else
        MsgBox "不能刪除系統資料庫!"
        Exit Sub
    End If
'err:
'    MsgBox err.Description
ConADODB.Close
End Sub

Private Sub CmdDelTable_Click() '刪除資料庫中的一張表
    Dim strDataName As String '待刪除表所在的資料庫
    Dim strTableName As String '待刪除的表名
    Dim strSql As String
    strDataName = CboChooseDatabase.Text
    strTableName = CboTable.Text
    If Trim(strDataName) = "" Then
        MsgBox "沒有選擇資料庫,請選擇!"
        Exit Sub
    End If
    If Trim(strTableName) = "" Then
        MsgBox "沒有選擇表,請選擇!"
        Exit Sub
    End If
    Call ConnectDatabase(strDataName, ConADODB)
    strSql = "if exists (select 1 from sysobjects where id=object_id('" & strTableName & "')and type='U')drop table " & strTableName & ""
    If isConnect = False Then
        MsgBox "沒有連線成功資料庫,請重新選擇資料庫!"
        Exit Sub
    Else
        ConADODB.Execute strSql
    End If
    ConADODB.Close
End Sub
Private Sub InitDB()
    Call ConnectSting
    ConADODB.CommandTimeout = 20
    '獲取本地sql伺服器中所有資料庫
    ResADODB.Open "sysdatabases", ConADODB, adOpenDynamic, adLockOptimistic
    Dim strDataName As String
    Do While Not ResADODB.EOF
        strDataName = ResADODB.Fields("name").Value
        If strDataName <> "master" And strDataName <> "model" And strDataName <> "msdb" And strDataName <> "tempdb" And Mid(strDataName, 1, 13) <> "ReportServer$" Then
            CboChooseDatabase.AddItem (strDataName)
        End If
        ResADODB.MoveNext
    Loop
    Set ResADODB = Nothing
    ConADODB.Close
End Sub
Private Sub Form_Load()
    LvwNewTable.Enabled = False
    LvwNewTable.BackColor = &H8000000B
    Call InitDB
End Sub
Private Sub ConnectDatabase(databaseName As String, cn As ADODB.Connection) '為資料庫建立連線物件並返回
    Dim i As Integer
    For i = 0 To CboChooseDatabase.ListCount
        If Trim(CboChooseDatabase.List(i)) = Trim(databaseName) Then
            cn.ConnectionString = "Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;PWD=密碼;Initial Catalog=" & databaseName & ";Data Source=伺服器名" '連線資料庫字串
            cn.Open
            isConnect = True
            Exit Sub
        End If
    Next i
    isConnect = False
    MsgBox "選擇的資料庫不存在,請重新建立或選擇!"
End Sub

Private Sub ConnectSting()
    If ConADODB.State = 0 Then
        ConADODB.ConnectionString = "Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;PWD=密碼;Initial Catalog=master;Data Source=伺服器名" '連線資料庫字串
        ConADODB.Open
End If
End Sub

 程式碼還是有點問題,以後改正!有興趣的朋友可以參考下.........................

相關推薦

vb獲取建立資料庫包含

Option Explicit Dim isConnect As Boolean '判斷資料庫是否連線成功 Dim ConADODB As New ADODB.Connection '用於連線MASTER系統資料庫 Dim ResADODB As New ADODB.Rec

postgresql資料獲取

pg庫表名獲取 select * from pg_tables where tablename=‘’ pg庫列名和型別註釋等獲取 –獲取欄位名、型別、註釋、是否為空: SELECT col_description(a.attrelid,a.attnum) as comment,a

查詢資料庫中某型別

mysql: 1. 查詢資料庫中的所有表:show tables; 2. 查詢表中的欄位名和欄位型別: show columns from table_name(表名);                 &n

列出MSSQL資料庫中的內容

CREATE PROCEDURE [dbo].[List_Field] ASSELECT       表名=d.name, --case   when   a.colorder=1   then   d.name   else   ''   end,     欄位序號=a.c

mac終端操作資料庫--(4)修改的字符集屬性修飾

mac終端操作資料庫–(4)修改表和欄位的字符集 在終端建立表的時候,表和欄位的字元編碼預設不是utf8編碼,而是latin1編碼格式,導致在插入中文資料的時候報錯 ERROR 1366 (HY000

C#獲取MySQL資料庫中的所有的的資料型別

   獲取表名         public bool GetTableName()         {             string sql = "show tables;";             MySqlCommand cmd = new MySqlCom

java 資料庫資料大小寫問題

postgreSQL 中資料庫名、 資料表名和欄位名大小寫問題,這個問題很常見。 1 、資料庫名中的每個字母區分大小寫,這裡就要求 SQL 語句中的連線語句中的資料庫名中的每個字母和 postgreSQL 軟體的資料庫名 中的每個字母的 大小寫要嚴格一致。 2 、 下面是

python讀取xml資料庫中表內所有資料,獲取資料庫中所有名稱

工作中需要讀取指定xml資料庫中的資料以及 表所需欄位名,所以在已有例子中改進實現: xml 資料庫 xmldabase.xml: <database> <manifest> <pair key="schema_major_vsn" v

C#獲取SQLServer資料庫

SQLServer資料庫每個資料庫都有INFORMATION_SCHEMA檢視,資料庫的結構資訊Schema都在這裡儲存。 select TABLE_NAME,TABLE_TYPE,TABLE_CAT

oracle資料庫查詢某個資訊

(1)查詢整個資料庫所有表的欄位 select t.column_name from user_col_comments t;(一般建議去執行,因為資料庫表過多執行起來會非常的慢) (2)查詢特定表名的表字段 select t.column_name, t.column_name&nbs

mysql【同資料庫的多操作】

一 令人窒息的CONCAT(str1,str2,…) 我只蹭蹭不進去 更新 SELECT CONCAT('update ‘,table_name,’ set 欄位名= 值; ') FROM information_schema.tables WHERE table_s

ORACLE——在所有中查詢某個字串並輸出

什麼都不想說,直接上乾貨 declare v_Sql varchar2(2000); v_count number; begin for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME from

mysql中為使用者設定資料庫,資料(列)的訪問許可權

1、mysql中對指定使用者,授予某些資料庫,資料表或者欄位訪問許可權 語法: GRANT PRIVILEGES ON DATA.TABLE TO USERS; 溫馨提示: 授權後可以使用2中命令進行使用者許可權許可權,也可以直接重啟mysql程序方式進行許可權重新整理。 A

flask-連線資料庫flask_aqlalchemy-建-增加-刪除-修改

安裝模組 pip install pymysql pip install flask_aqlalchemy flaskpei配置檔案setting.py 中配置資料庫 設定資料庫url #coding=utf-8 class DataBaseSetting: DEBUG=Tr

SQLSERVER查詢所有資料庫,,

 1.獲取所有資料庫名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.獲取所有表名: SELECT Name FROM DatabaseName..SysObjects Where XType='U' O

SQLSERVER查詢整個資料庫中某個特定值所在的的方法

做專案中前些天要手動改資料庫中的一些欄位的值,但發現這個欄位可能會被資料庫中其他的很多張表引用,於是就得想辦法查詢出該條記錄的所有引用的表和欄位,下面的儲存過程可以查詢出整個資料庫中某個特定值所在的表和欄位。 ↓雙擊程式碼段選中複製↓注意修改資料型別xtype 1

mysql 查詢資料庫裡面的id是否存在 可以限定

DELIMITER $$ USE `awebprice`$$ DROP PROCEDURE IF EXISTS `p_search_value`$$ CREATE DEFINER=`dbn_admin`@`%` PROCEDURE `p_search_value`( IN

powerdesigner將資料庫匯出的顯示註釋

選定一個編輯的表,右鍵- >Properties- >Columns- >Customize Columns and Filter(或直接用快捷鍵Ctrl+U)- >Comment(前面打勾)- >OK彈出的視窗中,選中COMMENT確定後註釋列

JPA 通過註解自動生成 新增 型別註釋

@Table - 對映表名 @Id - 主鍵 @GeneratedValue(strategy=GenerationType.IDENTITY) - 自動遞增生成 @Column(name = “dict_name”,columnDefinition=”varchar(100) COMMENT ‘字

獲取資料註釋

1、oracle:                 SELECT t1.COLUMN_NAME,                  t2.COMMENTS                  FROM user_tab_columns t1,                  user_col_comment