C# 创建和连接Access数据库文件

连接Access07
1.Access07引用COM组件“Microsoft ADO Ext.6.0 for DDL and Security”, 
2.引用ADOX命名空间
using ADOX;
using System.Data.OleDb;
3.string strConnect = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = "
                + "C:\\Users\\Administrator\\Desktop\\test1.accdb;"
                + "Jet OLEDB:Database Password=cpls"; //若有密码
4.string Dbname = "C:/Users/Administrator/Desktop/CreateAccess.accdb";
            CatalogClass access = new CatalogClass();
            access.Create("Provider =Microsoft.ACE.OLEDB.12.0;Data Source =" + Dbname + ";");
5.
 
连接03
引用Microsoft ADO Ext.2.8 for DDL and Security,语句中将ACE改为Jet,12.0改成4.0
 
 ADOX列举的属性有:

0 Autoincrement 自动编号 1 Default 默认值 2 Description 3 Nullable 必填字段 4 Fixed Length 5 Seed 6 Increment 7 Jet OLEDB:Column Validation Text 有效性文本 8 Jet OLEDB:Column Validation Rule 有效性规则 9 Jet OLEDB:IISAM Not Last Column 10 Jet OLEDB:AutoGenerate 11 Jet OLEDB:One BLOB per Page 12 Jet OLEDB:Compressed UNICODE Strings 13 Jet OLEDB:Allow Zero Length 允许空字符串 14 Jet OLEDB:Hyperlink 超链接型

 
 
 example
            try
            {
                string Dbname = "C:/Users/Administrator/Desktop/CreateAccess.accdb";
                ADOX.CatalogClass access = new ADOX.CatalogClass();
                if (!File.Exists(Dbname))
                {
                    access.Create("Provider =Microsoft.ACE.OLEDB.12.0;Data Source =" + Dbname + ";");
                    ADOX.TableClass table = new TableClass();
                    table.ParentCatalog = access;
                    table.Name = "CreateTable";
                    ColumnClass col = new ColumnClass();
                    col.ParentCatalog = access;
                    col.Type = ADOX.DataTypeEnum.adInteger;
                    col.Name = "ID";
                    col.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
                    col.Properties["AutoIncrement"].Value = true;
                    table.Columns.Append(col, DataTypeEnum.adInteger, 0);
                    access.Tables.Append(table);
                }
                else
                {
                    Console.WriteLine("已存在同名文件!");
                }
            }
            catch (Exception ex)
            { Console.WriteLine(ex.Message); }
            finally
            { 
            
            }
 
 
 //
创建表(1)
            string strConnect = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = "
               + "C:\\Users\\Administrator\\Desktop\\test1.accdb;"
               + "Jet OLEDB:Database Password=cpls";
            OleDbConnection con = new OleDbConnection(strConnect);
            OleDbCommand cmd = con.CreateCommand();
            cmd.CommandText = "CREATE TABLE table1(ID AUTOINCREMENT,GdNum TEXT(50),Address TEXT(50),PrintResult yesno,PrintDate DateTime,CONSTRAINT table1_PK PRIMARY KEY(ID))";
            con.Open();
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            con.Close();
 
 创建表(2)使用ADODB,添加引用COM中的Microsoft ActiveX Data Objects 6 Library
            
            CatalogClass cat = new CatalogClass();
            string strConnect = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = "
               + "C:\\Users\\Administrator\\Desktop\\test1.accdb;"
               + "Jet OLEDB:Database Password=cpls";
            ADODB.Connection con = new ADODB.Connection();
            con.Open(strConnect, null, null, -1);
            cat.ActiveConnection = con;
            ADOX.TableClass table2 = new TableClass();
            table2.ParentCatalog = cat;
            table2.Name = "CreateTable";
            ColumnClass col = new 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;
            table2.Columns.Append(col, ADOX.DataTypeEnum.adInteger, 0);
            table2.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, col, null, null);
            table2.Columns.Append("CustomerName", ADOX.DataTypeEnum.adVarWChar, 50);
            table2.Columns.Append("Age", ADOX.DataTypeEnum.adInteger, 9);
            table2.Columns.Append("Birthday", ADOX.DataTypeEnum.adDate, 0);
            cat.Tables.Append(table2); 
 
 

///Access操作

                        string strConnect = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source = "                + "C:\\Users\\Administrator\\Desktop\\test1.accdb;"                + "Jet OLEDB:Database Password=cpls";             OleDbConnection con = new OleDbConnection(strConnect);             OleDbCommand cmd = con.CreateCommand();             //cmd.CommandText = "DROP TABLE CreateTable ";       //drop table             //cmd.CommandText = "INSERT INTO CreateTable (ID,CustomerName,Age,Birthday) Values /(1,'Ashley',22,#1988/01/03#)";//insert into access时间操作加##括起来             //cmd.CommandText = "UPDATE CreateTable SET Birthday=#1991/07/04# WHERE ID=1 ";//update             //cmd.CommandText = "DELETE FROM CreateTable WHERE ID=1";//delete             //cmd.CommandText = "DELETE * FROM CreateTable";//清除表格内容             //cmd.CommandText = "SELECT COUNT(*) FROM CreateTable";//             //cmd.CommandText = "SELECT Birthday FROM CreateTable WHERE ID=2";//             //cmd.CommandText = "ALTER TABLE CreateTable ADD COLUMN Marital_status yesno ";//添加行             //cmd.CommandText = "ALTER TABLE CreateTable DROP COLUMN Marital_status yesno ";//删除行             cmd.CommandText = "SELECT * INTO table2 FROM CreateTable";//Copy             con.Open();             OleDbDataReader oledr = cmd.ExecuteReader();             while (oledr.Read())             {                 Console.WriteLine(oledr[0]);             }             oledr.Close();             cmd.Dispose();             con.Close(); 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值