2013-03-08 22 views
92

W kodzie aplikacji C# chciałbym utworzyć, a następnie współdziałać z jedną lub więcej bazami danych SQLite.Utwórz bazę danych SQLite i tabelę

Jaka jest preferowana metoda inicjowania nowego pliku bazy danych SQLite i otwierania go do odczytu i zapisu?

Po utworzeniu bazy danych, w jaki sposób mogę wykonać instrukcję DDL, aby utworzyć tabelę?

Odpowiedz

192

Następny link zaprowadzi Cię do świetnego samouczka, który bardzo mi pomógł!

How to SQLITE in C#

I prawie wszystko wykorzystane w tym artykule, aby utworzyć bazę danych SQLite dla własnej aplikacji C#.

Nie zapomnij pobrać pliku SQLite.dll i dodaj go jako odniesienie do swojego projektu. Można to zrobić za pomocą NuGet i dodając dll ręcznie.

Po dodaniu odniesienia znajdują się w dll z kodu stosując następujący wiersz na szczycie swojej klasy:

using System.Data.SQLite;

można znaleźć dll tu:

SQLite DLL's

Możesz znaleźć numer NuGet tutaj:

NuGet

Następny jest skrypt do tworzenia. Tworzenie pliku bazy danych:

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(); 

Po utworzeniu skryptu tworzenia w języku C#, myślę, że warto dodać transakcji wycofania, to bezpieczniej i będzie zachować swoją bazę danych z braku, ponieważ dane zostaną popełnione na końcu w jednym wielkim utworze jako operacja atomowa do bazy danych, a nie w małych kawałkach, gdzie mogłoby to zawieść na przykład w 5 z 10 zapytań.

Przykład jak używać transakcji:

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

    //Indicates that creating the SQLiteDatabase went succesfully, so the database can be committed. 
    tran.Complete(); 
} 
+4

Nicea jasną odpowiedź. +1. Oto kolejny przykład, który pokazuje, jak szybki SQLite może być przy wstawianiu i wyszukiwaniu rekordów: http://www.technical-recipes.com/2016/using-sqlite-in-c-net-environments/ – AndyUK

Powiązane problemy