C# 动态创建Access数据库时的错误:“不可识别的数据库格式”

需要用C#动态创建Access数据库,于是有了下文。

使用的是Office 2007,数据库文件的格式为.accdb

刚开始的时候,以为去检测文件是否存在,如果不存在的话直接创建数据库文件就好了。

代码如下:

string filePath = new DirectoryInfo(".").FullName + @"\data.accdb";
            
if (!File.Exists(filePath))
{
    Console.WriteLine("文件data.accdb不存在");
    FileStream fs = File.Create(filePath);
    fs.Close();

    string connStr = string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0}", filePath);
    OleDbConnection conn = new OleDbConnection(connStr);
    conn.Open();

    OleDbCommand cmdStr = new OleDbCommand();
    cmdStr.Connection = conn;
    cmdStr.CommandText = "create table usrInfo (usrID int not null primary key, usrName char(16), grpName char(16), usrSignature char(255))";
    cmdStr.ExecuteNonQuery();
}
当调用conn.Open()方法的时候,出现错误提示:不可识别的数据库格式

查错:

查看文件,大小为0;但是如果手动创建的话,data.accdb初始大小并不为0   

错误原因:

用File类的Create()方法时,只创建空的文件,而不具备Access数据库的基本格式,所以不符合条件

解决:

使用C#动态创建Access数据库的正确方法


你可能感兴趣的:(数据库,String,C#,table,Office,Access)