怎么在代码中动态生成一个Access数据库并建表关系等

时间:2021-05-22 08:27:56
怎么在代码中动态生成一个Access数据库并建表关系等,怎么用代码修改Access数据库表的结构

8 个解决方案

#1


using System;
using System.Collections.Generic;
using System.Text;
using ADOX;

namespace testADOX
{
    class Program
    {
        static void Main(string[] args)
        {
            ADOX.Catalog catalog = new Catalog();
            catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;Jet OLEDB:Engine Type=5");

            ADODB.Connection cn = new ADODB.Connection();
            
            cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb", null, null, -1);
            catalog.ActiveConnection = cn;

            ADOX.Table table = new ADOX.Table();
            table.Name = "FirstTable";

            ADOX.Column column = new ADOX.Column();
            column.ParentCatalog = catalog;
            column.Name = "RecordId";
            column.Type = DataTypeEnum.adInteger;
            column.DefinedSize = 9;
            column.Properties["AutoIncrement"].Value = true;
            table.Columns.Append(column, DataTypeEnum.adInteger, 9);
            table.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, null, null);
            table.Columns.Append("CustomerName", DataTypeEnum.adVarWChar, 50);
            table.Columns.Append("Age", DataTypeEnum.adInteger, 9);
            table.Columns.Append("Birthday", DataTypeEnum.adDate, 0);
            catalog.Tables.Append(table);
         
            cn.Close();
        }
    }
}

#2


这个应该要添加什么引用吧?只用.Net的类库可以做到吗?

#3


需要先创建一个库,然后才能生成表和表关系进去

#4


生成access是比较麻烦 ,还不好先放一个空的access然后用sql创建表.

#5


最好有sql数据库

#6


要求是这样,我也没办法!只能尽力去实现了!希望各位大哥帮忙想想,谢谢

#7


Access中的表和关系不同于普通的数据库。
建议你下一个Case Studio,里面可以通过模型生成VB的建access库的代码

#8


你可以先用OFFICE创建一个空白的access库,然后再在程序里应用文件操作复制一份或多份,然后再构造连接字符串,然后再里面建表,不行吗?

什么都没有,凭空生成,这确实比较麻烦,也没必要.

#1


using System;
using System.Collections.Generic;
using System.Text;
using ADOX;

namespace testADOX
{
    class Program
    {
        static void Main(string[] args)
        {
            ADOX.Catalog catalog = new Catalog();
            catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb;Jet OLEDB:Engine Type=5");

            ADODB.Connection cn = new ADODB.Connection();
            
            cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb", null, null, -1);
            catalog.ActiveConnection = cn;

            ADOX.Table table = new ADOX.Table();
            table.Name = "FirstTable";

            ADOX.Column column = new ADOX.Column();
            column.ParentCatalog = catalog;
            column.Name = "RecordId";
            column.Type = DataTypeEnum.adInteger;
            column.DefinedSize = 9;
            column.Properties["AutoIncrement"].Value = true;
            table.Columns.Append(column, DataTypeEnum.adInteger, 9);
            table.Keys.Append("FirstTablePrimaryKey", KeyTypeEnum.adKeyPrimary, column, null, null);
            table.Columns.Append("CustomerName", DataTypeEnum.adVarWChar, 50);
            table.Columns.Append("Age", DataTypeEnum.adInteger, 9);
            table.Columns.Append("Birthday", DataTypeEnum.adDate, 0);
            catalog.Tables.Append(table);
         
            cn.Close();
        }
    }
}

#2


这个应该要添加什么引用吧?只用.Net的类库可以做到吗?

#3


需要先创建一个库,然后才能生成表和表关系进去

#4


生成access是比较麻烦 ,还不好先放一个空的access然后用sql创建表.

#5


最好有sql数据库

#6


要求是这样,我也没办法!只能尽力去实现了!希望各位大哥帮忙想想,谢谢

#7


Access中的表和关系不同于普通的数据库。
建议你下一个Case Studio,里面可以通过模型生成VB的建access库的代码

#8


你可以先用OFFICE创建一个空白的access库,然后再在程序里应用文件操作复制一份或多份,然后再构造连接字符串,然后再里面建表,不行吗?

什么都没有,凭空生成,这确实比较麻烦,也没必要.