Buat SQLite Database dan tabel [ditutup]

150

Di dalam kode aplikasi C #, saya ingin membuat dan kemudian berinteraksi dengan satu atau lebih database SQLite.

Bagaimana cara menginisialisasi file database SQLite baru dan membukanya untuk membaca dan menulis?

Setelah pembuatan database, bagaimana cara mengeksekusi pernyataan DDL untuk membuat tabel?

Tinker Bell
sumber

Jawaban:

290

Tautan selanjutnya akan membawa Anda ke tutorial yang bagus, yang banyak membantu saya!

Bagaimana cara SQLITE dalam C #

Saya hampir menggunakan semua yang ada di artikel itu untuk membuat database SQLite untuk Aplikasi C # saya sendiri.

Jangan lupa untuk mengunduh SQLite.dll, dan tambahkan itu sebagai referensi untuk proyek Anda. Ini dapat dilakukan dengan menggunakan NuGet dan dengan menambahkan dll secara manual.

Setelah Anda menambahkan referensi, lihat dll dari kode Anda menggunakan baris berikut di atas kelas Anda:

using System.Data.SQLite;

Anda dapat menemukan dll di sini:

SQLite DLL

Anda dapat menemukan jalan NuGet di sini:

NuGet

Selanjutnya adalah skrip buat. Membuat file database:

SQLiteConnection.CreateFile("MyDatabase.sqlite");

SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
m_dbConnection.Open();

string sql = "create table highscores (name varchar(20), score int)";

SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();

sql = "insert into highscores (name, score) values ('Me', 9001)";

command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();

m_dbConnection.Close();

Setelah Anda membuat skrip buat di C #, saya pikir Anda mungkin ingin menambahkan transaksi rollback, lebih aman dan itu akan menjaga database Anda dari kegagalan, karena data akan dilakukan pada akhirnya dalam satu bagian besar sebagai operasi atom ke database dan tidak dalam potongan kecil, di mana itu bisa gagal pada 5 dari 10 pertanyaan misalnya.

Contoh tentang cara menggunakan transaksi:

 using (TransactionScope tran = new TransactionScope())
 {
     //Insert create script here.

     //Indicates that creating the SQLiteDatabase went succesfully, so the database can be committed.
     tran.Complete();
 }
Maks
sumber
5
Jawaban yang jelas dan bagus. Memberi +1. Berikut adalah contoh lain yang menunjukkan seberapa cepat SQLite dapat menyisipkan dan mengambil catatan: technical-recipes.com/2016/using-sqlite-in-c-net-environmentments
AndyUK
Dalam pengujian saya menggunakan System.Transactions.TransactionScopetidak berfungsi seperti yang diharapkan, itu akan mengeksekusi ExecuteNonQuerysegera dan tidak semua bersama-sama, seperti SQLiteTransaction. Mengapa menggunakan TransactionScope?
MrCalvin
1
Saya lebih suka SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;menggunakanTransactionScope
user643011