首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#创办access2007数据库

2013-11-14 
C#创建access2007数据库各位老师高手大家好,请教一个问题:1、我的电脑是win8,64位。2、我在vs2008下开发acces

C#创建access2007数据库
各位老师高手大家好,请教一个问题:
1、我的电脑是win8,64位。
2、我在vs2008下开发access2007数据库,C#创建access2007数据库,提示错误,请赐教。详见附图,谢谢!!


3、数据库引擎已经安装,源码如下,谢谢赐教!


private void button1_Click(object sender, EventArgs e)
        {
            //连接串换成Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;解决了。
            string accdb = this.textBox1.Text; // "d:\\test.accdb";//"d:\\test2.accdb";   //
            if (System.IO.File.Exists(accdb)) System.IO.File.Delete(accdb);
            ADOX.Catalog cat = new ADOX.Catalog();

            cat.Create("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + accdb);
            //cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + accdb);
            
            ADOX.Table tbl = new ADOX.Table();
            tbl.ParentCatalog = cat;

            tbl.Name = "Table1";

            //增加一个自动增长的字段
            ADOX.Column col = new ADOX.Column();
            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.Column col2 = new ADOX.Column();
            col2.ParentCatalog = cat;
            col2.Name = "Description";
            col2.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
            tbl.Columns.Append(col2, ADOX.DataTypeEnum.adVarChar, 25);

            //增加数字字段
            ADOX.Column col3 = new ADOX.Column();
            col3.ParentCatalog = cat;
            col3.Name = "数字";
            col3.Type = ADOX.DataTypeEnum.adDouble;
            col3.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
            tbl.Columns.Append(col3, ADOX.DataTypeEnum.adDouble, 666);

            //增加Ole字段
            ADOX.Column col4 = new ADOX.Column();
            col4.ParentCatalog = cat;
            col4.Name = "Ole类型";
            col4.Type = ADOX.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);

            System.Runtime.InteropServices.Marshal.ReleaseComObject(tbl);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(cat);
            tbl = null;
            cat = null;


            GC.WaitForPendingFinalizers();
            GC.Collect();


            MessageBox.Show("创建完成!");
        }





C#创办access2007数据库 C#创建access2007数据库
[解决办法]
access数据库驱动没装好

http://blog.sina.com.cn/s/blog_6cb1f1c50100rtlv.html
[解决办法]
access2007 用这个Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydata
数据驱动不对。

你用vs连接一个access2007,用那个连接串才好。
[解决办法]
试试项目上右键-〉生成-生成平台-〉x86
你的是AnyCpu的吧

热点排行