如何用C#在Access中创建表?最好给出代码。

解决方案 »

  1.   

    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   
          }   
      }
      

  2.   

    OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;");
    conn.Open();
    OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = conn;
    cmd.CommandText = "create table t(a int)";
    cmd.ExecuteNonQuery;
    conn.Close();