#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