如何在.NET Core中创建SQLite数据库文件?

Jon*_*len 3 sqlite .net-core

使用System.Data.SQLite我会打电话给SqliteConnection.CreateFile

等价于Microsoft.Data.Sqlite什么?

Mag*_*nus 20

Microsoft.Data.Sqlite通常会自动处理它。

当您尝试使用以下代码中示例的简单连接字符串打开数据库时,如果数据库不存在,则将创建该数据库:

using (var connection = new SqliteConnection("Data Source=hello.db")) {
    connection.Open();  //  <== The database file is created here.

    // more code here that creates tables etc.

}
Run Code Online (Sandbox Code Playgroud)

更具体地说,这只是创建一个空文件,当您在其中创建这些内容时,该文件将填充表格等。

但这完全取决于连接模式,可以使用关键字“Mode”在连接字符串中指定。该关键字的默认值(即当省略该关键字时)是“ReadWriteCreate”,这意味着打开数据库进行读写,如果数据库不存在则创建它。关键字“Mode”的其他值没有这种效果。

有关详细信息,请参阅Microsoft.Data.Sqlite - 连接字符串。


Jon*_*len 5

找到了System.Data.SQLite源代码。就是这样:

/// <summary>
/// Creates a database file.  This just creates a zero-byte file which SQLite
/// will turn into a database when the file is opened properly.
/// </summary>
/// <param name="databaseFileName">The file to create</param>
static public void CreateFile(string databaseFileName)
{
  FileStream fs = File.Create(databaseFileName);
  fs.Close();
}
Run Code Online (Sandbox Code Playgroud)

  • 较短版本,File.WriteAllBytes(databaseFileName, new byte[0]); (5认同)