::服务内容::
网站方向
网站维护 频道值班
网站策划 内容更新
图片处理 动画制作
网站开发 网站改版
页面重构 程序整理
网络维护
公司上网 电脑维护
服 务 器 网络布线
技能培训
DIV+CSS Java/VBscript
DHTML Asp+deamweaver
Flash PhotoShop
SQL/Mysql oracle
::网站优化::
网站优化
程序结构 页面结构
整站优化 页面重构
优化策划 运营策划
产品网上运营策划
处理网站不合理因素
所有策划均免费提供
登录模块加载中...

在.NET 2.0框架下动态创建Access数据库和表

文章来源:[] 作者:[] 点击次数:[]

在以前的文章《如何在.NET框架下创建Access数据库和表?》中提供的方法,在.NET 2.0下无效,所有的字段类型都变成了文本类型,不知道微软改变了什么东西。下面将修正后的代码发布如下。
  
  C#:
  
  <%@ Page Language="C#" %>
  
  <%@ Import Namespace="ADOX" %>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  
  <script runat="server">
   /// <summary>
   /// CreateAccessDB 的摘要说明。
   /// 对于不同版本的ADO,需要添加不同的引用
   /// 请添加引用Microsoft ADO Ext. 2.7 for DDL and Security
   /// 请添加引用Microsoft ADO Ext. 2.8 for DDL and Security
   /// </summary>
  
   protected void Page_Load(object sender, 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);
  
   //增加数字字段
   ADOX.ColumnClass col3 = new ADOX.ColumnClass();
   col3.ParentCatalog = cat;
   col3.Name = "数字";
   col3.Type = DataTypeEnum.adDouble;
   col3.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
   tbl.Columns.Append(col3, ADOX.DataTypeEnum.adDouble, 666);
  
   //增加Ole字段
   ADOX.ColumnClass col4 = new ADOX.ColumnClass();
   col4.ParentCatalog = cat;
   col4.Name = "Ole类型";
   col4.Type = DataTypeEnum.adLongVarBinary;
   col4.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
   tbl.Columns.Append(col4, ADOX.DataTypeEnum.adLongVarBinary, 0);
  
  
   //设置主键
   tbl.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "id", "", "");
   cat.Tables.Append(tbl);
  
   msg.Text = ("<br>数据库表:" + tbl.Name + "已经创建成功!");
  
   System.Runtime.InteropServices.Marshal.ReleaseComObject(tbl);
   System.Runtime.InteropServices.Marshal.ReleaseComObject(cat);
   tbl = null;
   cat = null;
   GC.WaitForPendingFinalizers();
   GC.Collect();
   }
  </script>
  
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
   <title>在.NET框架下动态创建Access数据库和表</title>
  </head>
  <body>
   <form id="form1" runat="server">
   <asp:Label ID="msg" runat="server" />
   </form>
  </body>
  </html>

01.网站维护
网站没有一个专职来维护、网站更新或页面修改、服务器及程序的维护、频道或斑竹管理、客户访问不理想…我来为您解忧  
01.网站开发
根据客户要求做出适用性、专业性方案,针对搜索引擎进行网站开发,特别客户尾款可于百度、Google、yahoo收录后付  
01.技能培训
想迅速学会网站开发吗?导师都是由从业开发4年以上专业人员,为了您可安排上门或预约地点进行培训,共同发展美好未来  
联系我们
联系方式:
时间:08:30—22:30
联系电话:
13811100391
联系QQ:
83580939
联系EMail
itlt#itlt.com.cn
it互联-竭诚为您服务!