程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 在.NET 2.0框架下動態創建Access數據庫和表

在.NET 2.0框架下動態創建Access數據庫和表

編輯:.NET實例教程

     在以前的文章《如何在.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>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved