如何将C#应用程序连接到SQLite数据库

问题描述:

我想连接到SQLite数据库。请给我示例代码哪些工作。此外,我想用database.I用这个代码链接datagridview的,但它不工作:如何将C#应用程序连接到SQLite数据库

private DataTable dt; 
public Form1() 
{ 
    InitializeComponent(); 
    this.dt = new DataTable(); 
} 
private SQLiteConnection SQLiteConnection; 
private void DataClass() 
{ 
    SQLiteConnection = new SQLiteConnection("Data Source=PasswordManager.s3db;Version=3;"); 
} 
private void GetData() 
{ 
    SQLiteDataAdapter DataAdapter; 
    try 
    { 
    SQLiteCommand cmd; 
    SQLiteConnection.Open(); //Initiate connection to the db 
    cmd = SQLiteConnection.CreateCommand(); 
    cmd.CommandText = "select*from PasswordManager;"; //set the passed query 
    DataAdapter = new SQLiteDataAdapter(cmd); 
    DataAdapter.Fill(dt); //fill the datasource 
    dataGridView1.DataSource = dt; 
} 
catch(SQLiteException ex) 
{ 
    //Add your exception code here. 
} 
SQLiteConnection.Close(); 
+0

你到目前为止尝试过什么?此外,请参阅[这个问题](http://*.com/questions/26020/what-is-the-best-way-to-connect-and-use-a-sqlite-database-from-c-sharp) – 2012-01-15 13:47:15

+2

你有[google搜索](https://www.google.com/?#q=c%23%20sqlite%20example)吗? – Jon 2012-01-15 13:48:07

您可以使用System.Data.SQLite ADO.NET提供者。一旦你下载和引用的程序集,这是非常简单的ADO.NET代码:

using (var conn = new SQLiteConnection(@"Data Source=test.db3")) 
using (var cmd = conn.CreateCommand()) 
{ 
    conn.Open(); 
    cmd.CommandText = "SELECT id FROM foo"; 
    using (var reader = cmd.ExecuteReader()) 
    { 
     while (reader.Read()) 
     { 
      int id = reader.GetInt32(reader.GetOrdinal("id")); 
      ... 
     } 
    } 
} 
+0

提供的链接已死亡。看来,至少有两个地方可以获得这个软件包。 https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki,另一个是位于https://www.nuget.org/packages/System.Data.SQLite的nuget站点 – 2017-05-05 17:43:08

除了由达林提供的答案,有SQLite中没有“创建数据库”命令(我记得是什么)。当你启动一个“SQLiteConnection”时,如果给定的数据库(.db3)不存在,它会自动创建它......然后你可以创建你的表。

+0

我知道如何做到这一点,所以对我来说这不是问题 – Nikalas1111 2012-01-15 18:05:25

+0

@ Nikalas1111,没问题,但对于其他可能对SQLite不熟悉并且不了解引擎和创建连接的人来说,可能会帮助他们找到那个缺失的部分当我最初开始使用时,我不认为这是很好的记录:) – DRapp 2012-01-15 21:33:47