C#与Access数据库文件的创建

创建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>

        ///<paramname="strFilePath">数据库文件的路径</param>

        publicstaticboolCreateAccess(stringstrFilePath)

        {

            ADOX.Catalog clg =newCatalog();

            if (!File.Exists(strFilePath))

            {

                try

                {

                   //创建clg后,其数据库的锁定文件laccdb就一直存在(用以锁定此数据库文件)

                   clg.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +strFilePath + ";JetOLEDB:Engine Type=5");

                }

                catch(System.Exception ex)

                {

                   MessageBox.Show("数据库创建失败","提示");

                   returnfalse;

                }

            }

            returntrue;

        }

4:创建数据表。只创建一个数据库文件是没有意义的,创建表的本质是把创建的字段添加到数据表中。其具体代码如下:

///<summary>

        ///Access数据库中创建数据库表文件

        ///</summary>

        ///<paramname="FilePath">数据库表文件全路径</param>

        ///<paramname="tableName">表名</param>

        ///<paramname="colums">ADOX.Column对象数组</param>

        publicboolCreateAccessTable(string FilePath, stringtableName,params ADOX.Column[]colums)

        {

            boolbolReturn =false;

            ADOX.Catalog clg =newCatalog();

            //数据库文件存在

            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 (),"提示");

            }

            returnbolReturn;

        }

5:创建按钮的代码如下:

  //创建按钮

        privatevoidbtnCreat_Click(object sender, EventArgs e)

        {

            Access ac =newAccess();

            stringFilePath =@"C:\Users\dwa1124\Desktop\自动创建的Access数据表.mdb";

            ADOX.Column column1=newColumn();

            ADOX.Column column2=newColumn();

            ADOX.Columncolumn3=newColumn();

            //设置字段名:名字

           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("创建成功","提示");

            }

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值