我使用下面的代码建立了一个Access文件:
FileStream ps=new FileStream("Access.mdb",FileMode.Create,FileAccess.Write,FileShare.None)
但是在我打开该文件时却提示:
                          System.Data.OleDb.OleDbException: 不可识别的数据库格式
请问我该如何正确建立一个Access文件?

解决方案 »

  1.   

    Access 当然不能这样建立了,用 ADOX
    -----------------------------------
    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 +";"); 
             MessageBox.Show ("数据库:" + 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);          MessageBox.Show ("数据库表:" + tbl.Name + "已经创建成功!");
             tbl=null;
             cat = null;--------------------
    要运行这段代码,还要注意下面的两个步骤!
    一:在菜单的 项目--》添加引用---》COM 找到Microsoft ADO Ext. 2.7 for DDL and Security 添加上去(否则程序运行,会找不到ADOX的运行指令,对于不同版本的ADO,需要添加不同的引用,有的可能是2.6,2.8的
    )
    二:添上 using ADOX;
      

  2.   

    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 +";");
      

  3.   

    谢谢 alexzhang00()
    代码我就不客气用上了!