使用ADOX创建Access数据库和表

来源:互联网 发布:编软件 编辑:程序博客网 时间:2024/05/18 02:36

using System; 
using ADOX;

namespace WebPortal 

/// <summary> 
/// CreateAccessDB 的摘要说明。 
/// 对于不同版本的ADO,需要添加不同的引用 
/// 请添加引用Microsoft ADO Ext. 2.7 for DDL and Security 
/// 请添加引用Microsoft ADO Ext. 2.8 for DDL and Security 
/// </summary> 
public class CreateAccessDB : System.Web.UI.Page 

private void Page_Load(object sender, System.EventArgs e) 

//为了方便测试,数据库名字采用比较随机的名字,以防止添加不成功时还需要重新启动IIS来删除数据库。 
string dbName = "D:\\NewMDB"+DateTime.Now.Millisecond.ToString()+".mdb"; 
ADOX.CatalogClass cat = new ADOX.CatalogClass(); 
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbName +";"); 
Response.Write("数据库:" + dbName + "已经创建成功!"); 
ADOX.TableClass tbl = new ADOX.TableClass(); 
tbl.ParentCatalog = cat; 
tbl.Name="MyTable";

//增加一个自动增长的字段 
ADOX.ColumnClass col = new ADOX.ColumnClass(); 
col.ParentCatalog = cat; 
col.Type=ADOX.DataTypeEnum.adInteger; // 必须先设置字段类型 
col.Name = "id"; 
col.Properties["Jet OLEDB:Allow Zero Length"].Value= false; 
col.Properties["AutoIncrement"].Value= true; 
tbl.Columns.Append (col,ADOX.DataTypeEnum.adInteger,0);

//增加一个文本字段 
ADOX.ColumnClass col2 = new ADOX.ColumnClass(); 
col2.ParentCatalog = cat; 
col2.Name = "Description"; 
col2.Properties["Jet OLEDB:Allow Zero Length"].Value= false; 
tbl.Columns.Append (col2,ADOX.DataTypeEnum.adVarChar,25);

//设置主键 
tbl.Keys.Append("PrimaryKey",ADOX.KeyTypeEnum.adKeyPrimary,"id","",""); 
cat.Tables.Append (tbl);

Response.Write("<br>数据库表:" + tbl.Name + "已经创建成功!"); 
tbl=null; 
cat = null; 
}

#region Web 窗体设计器生成的代码 
override protected void OnInit(EventArgs e) 

// 
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 
// 
InitializeComponent(); 
base.OnInit(e); 
}

/// <summary> 
/// 设计器支持所需的方法 - 不要使用代码编辑器修改 
/// 此方法的内容。 
/// </summary> 
private void InitializeComponent() 

this.Load += new System.EventHandler(this.Page_Load); 

#endregion 

0 0
原创粉丝点击