#Region "自動創建"
''' <summary>
''' 創建數據庫
''' </summary>
''' <param name="filepath">數據庫文件創建后保存的位置</param>
''' <returns>false:創建失敗;true:創建成功或已存在</returns>
''' <remarks></remarks>
Private Function CreateAccess(ByVal filepath As String) As Boolean
Dim bolReturn As Boolean = False
Dim clg As ADOX.Catalog = New ADOX.Catalog()
If (File.Exists(filepath) = False) Then
Try
clg.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath & ";Jet OLEDB:Engine Type=5")
bolReturn = True
Catch ex As Exception
MessageBox.Show("創建數據庫文件失敗", "提示")
End Try
Else
bolReturn = True
End If
Return bolReturn
End Function
''' <summary>
''' 創建數據表
''' </summary>
''' <param name="filepath">數據庫文件的位置</param>
''' <param name="tablename">數據庫表的名字</param>
''' <param name="colums">ADOX.Column對象數組</param>
''' <remarks></remarks>
Public Function CreateAccessTable(ByVal filepath As String, ByVal tablename As String, ByVal ParamArray colums() As ADOX.Column) As Boolean
Dim clg As ADOX.Catalog = New ADOX.Catalog()
Dim bolReturn As Boolean = False
Try
If (CreateAccess(filepath) = True) Then
'連接已創建好的數據庫文件
Dim Cn As ADODB.Connection = New ADODB.Connection()
Cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath & ";")
clg.ActiveConnection = Cn
'新建數據庫表
Dim Table As ADOX.Table = New ADOX.Table()
Table.Name = tablename
'加入字段名到數據庫表中
For Each Column In colums
Table.Columns.Append(Column)
Next
'加入數據庫表到數據庫文件中
clg.Tables.Append(Table)
Cn.Close()
bolReturn = True
End If
Catch ex As Exception
MessageBox.Show("創建失敗" & ex.ToString(), "數據庫創建")
End Try
Return bolReturn
End Function
#End Region
'自動創建數據庫文件
Private Sub btnCreat_Click(sender As Object, e As EventArgs) Handles btnCreat.Click
Dim ac As Access = New Access()
Dim FilePath As String = "C:\Users\dwa1124\Desktop\我的數據庫文件.mdb"
Dim TableName As String = "我的表名"
Dim Column1 As ADOX.Column = New ADOX.Column()
Dim Column2 As ADOX.Column = New ADOX.Column()
Dim Column3 As ADOX.Column = New ADOX.Column()
'
Column1.Name = "名字"
Column1.Type = DataTypeEnum.adVarWChar
Column1.DefinedSize = 255
'
Column2.Name = "性別"
Column2.Type = DataTypeEnum.adVarWChar
Column2.DefinedSize = 255
'
Column3.Name = "年齡"
Column3.Type = DataTypeEnum.adInteger
Column3.DefinedSize = 9
'調用數據庫創建函數
If ac.CreateAccessTable(FilePath, TableName, Column1, Column2, Column3) Then
MessageBox.Show("創建成功", "提示")
End If
End Sub