創建Access
-
通過Acccess軟件創建Acccess表
1:新建一個空白數據庫文件,並命名為"Database"。
2:右擊"表一"的"設計試圖",並命名表名為"Administrator",點擊"確認"后,從創建"ID"、"用戶名稱"、"用戶密碼",並分別設置器數據類型。
3:點擊"保存"后,就可添加數據。
4:如需創建密碼,則可點擊"工具\安全性",即可添加密碼。
二、動態創建數據庫及表名。
1:先添加兩個COM組件引用,右擊方案選擇"引入參考",加入Microsoft ActiveX Data Objects 2.8 Library和Microsoft ADO Ext. 2.8 for DDL and Security。
2:聲明"using ADOX;"和"using System.IO;"
3:創建Access文件,代碼如下:
/// <summary>
///創建Access數據庫
/// </summary>
/// <param name="strFilePath">數據庫文件的路徑</param>
public static bool CreateAccess(string strFilePath)
{
ADOX.Catalog clg = new Catalog();
if (!File.Exists(strFilePath))
{
try
{
//創建clg后,其數據庫的鎖定文件laccdb就一直存在(用以鎖定此數據庫文件)
clg.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Jet OLEDB:Engine Type=5");
}
catch (System.Exception ex)
{
MessageBox.Show("數據庫創建失敗", "提示");
return false;
}
}
return true;
}
4:創建數據表。只創建一個數據庫文件是沒有意義的,創建表的本質是把創建的字段添加到數據表中。其具體代碼如下:
/// <summary>
///在Access數據庫中創建數據庫表文件
/// </summary>
/// <param name="FilePath">數據庫表文件全路徑 </param>
/// <param name="tableName">表名</param>
/// <param name="colums">ADOX.Column對象數組</param>
public bool CreateAccessTable(string FilePath, string tableName, params ADOX.Column[] colums)
{
bool bolReturn = false;
ADOX.Catalog clg = new Catalog();
//數據庫文件存在
try
{
if (CreateAccess(FilePath) == true)
{
ADODB.Connection cn = new ADODB.Connection();//連接已創建的數據庫文件
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath, null, null, -1);
clg.ActiveConnection = cn;//打開已創建的數據庫文件
ADOX.Table table1 = new ADOX.Table();
table1.Name = tableName;//命名一張表Administrator
/*設置類型
//table1.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, null, null);//定義主鍵
*/
foreach (var column in colums)
{
if (column.Name != null)
{
table1.Columns.Append(column);//添加字段到表
}
}
clg.Tables.Append(table1);//添加表到數據庫文件
cn.Close();
bolReturn = true;
}
}
catch (Exception ex)
{
MessageBox .Show ("創建失敗\r\n " + ex .ToString (),"提示");
}
return bolReturn;
}
5:創建按鈕的代碼如下:
//創建按鈕
private void btnCreat_Click(object sender, EventArgs e)
{
Access ac = new Access();
string FilePath = @"C:\Users\dwa1124\Desktop\自動創建的Access數據表.mdb";
ADOX.Column column1 = new Column();
ADOX.Column column2 = new Column();
ADOX.Column column3= new Column();
//設置字段名:名字
column1.Type = ADOX.DataTypeEnum.adVarWChar;//設置類型為
column1.DefinedSize = 255;//設置長度
column1.Name = "名字";//設置字段名
//設置字段名:性別
column2.Type = ADOX.DataTypeEnum.adVarWChar;//設置類型為
column2.DefinedSize = 255;//設置長度
column2.Name = "性別";//設置字段名
//設置字段名:年齡
column3.Type = ADOX.DataTypeEnum.adInteger;//設置類型為
column3.DefinedSize = 9;//設置長度
column3.Name = "年齡";//設置字段名
//column.Properties["AutoIncrement"].Value = true;//設置自動增長
if (ac.CreateAccessTable(FilePath, "Administrator", column1,column2,column3))
{
MessageBox.Show("創建成功", "提示");
}
6:效果如圖所示: