簡體   English   中英

如何使用System.Data.SQLite和C#在代碼中從頭開始創建和持久化SQLite DB?

[英]How do I create and persist a SQLite DB from scratch in code using System.Data.SQLite and C#?

我有一個數據庫創建工具,我從頭開始創建一個數據庫。 這與在此處提到的方式相同。 它創建了一個臨時數據庫,我可以向其添加數據。

當我關閉數據庫時,它被刪除,這是預期的行為,但我不希望它被刪除。

我在System.Data.SQLite中找不到Save或Create方法,並使用System.IO.File.Create(myDBFilename);創建一個方法System.IO.File.Create(myDBFilename); 創建一個SQLite無法連接的文件。

如何從頭開始在代碼中創建和保留數據庫?

試試這個,SQLiteConnection.CreateFile(“c:\\ mydatabasefile.db3”);

如果所有其他方法都失敗了,這里也是命令行的東西

sqlite3 test.db
sqlite> CREATE TABLE cars(id INTEGER PRIMARY KEY AUTOINCREMENT,model text,year integer);
sqlite>插入汽車(型號,年份)值(“福特350”,2007年);
sqlite>插入汽車(模型,年份)值(“別克Skylark”,1953年);
sqlite>插入汽車(模型,年份)值(“Honda Civic”,2002);
sqlite>從汽車中選擇*;
1 |福特350 | 2007
2 | Buick Skylark | 1953
3 | Honda Civic | 2002
sqlite的> .quit

您不需要調用SQLiteConnection.CreateFile方法。

假設您正在打開這樣的連接:

using (var connection = new SQLiteConnection("Data Source=C:\\database.db"))
{
    // foo
}

如果它存在,它將嘗試打開數據庫文件C:\\\\database.db ,如果它不存在,將創建它。

假設使用c#-sqlite,

當您使用適當的API創建連接時,實際上傳入文件的名稱以用作參數。 如果該文件不存在,則創建它(默認情況下)。 例如

new SQLiteDatabase("c:\\foo.db")

當然,因為你需要轉義反斜杠(這是因為它是一個字符串)。 事先創建文件不起作用,因為生成的文件不是sqlite數據庫,因此不可用(因此,我假設你在這種情況下遇到錯誤)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM