C# SQLite連線使用
SQLite簡單來說就是一個小型資料庫,不需要任何安裝就可以使用,個人覺得有點不需安裝的Excel感覺
另外編輯SQLite資料庫我是使用 SQLiteDatabaseBrowserPortable這個軟體,不過上網看也滿多推薦用火狐的SQLite Manager
然後開始C#程式部分
收先先到官網下載對應的.NET版本
(我是下載Precompiled Binaries for 64-bit Windows (.NET Framework 4.5))
下載完裡面有範例程式,然後我們需要的是這幾個dll檔案,把他解壓縮到一個你找的到的目錄即可
SQLite.Designer.dll
SQLite.Interop.dll
System.Data.SQLite.dll
System.Data.SQLite.EF6.dll
System.Data.SQLite.Linq.dll
接著開始寫程式吧新建一專案,把上面所有的dll丟到bin/Debug裡頭,並在專案加入參考的dll
選擇專案點右=>加入=>參考=>瀏覽=>然後選擇上面灰底的三個dll加到專案
畫面部分先新增一個button和一個datagridview ,點兩下Button進入編輯
按下按鈕後,首先檢查DB檔案是否存在,然後OpenSQLite資料庫,接著卻認table username是否已經建立,沒有的話就建立一個username的table,然後新增一筆資料
最後Select username並把資料show在datagridview中
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SQLite;
using System.IO;
namespace SQLite_Exercise {
public partial class Form1 : Form {
private SQLiteConnection sqlite_conn; //宣告connection事件
private SQLiteCommand sqlite_cmd; //宣告Command-line事件
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
string sFName = @"SQLite_Exercise.db";
if (File.Exists(sFName)) {
string dbConnection = "Data Source=" + sFName;
sqlite_conn = new SQLiteConnection(dbConnection);
try {
sqlite_conn.Open();
sqlite_cmd = sqlite_conn.CreateCommand();
MessageBox.Show("Connect OK");
sqlite_cmd.CommandText = "SELECT name FROM sqlite_master WHERE type='table' AND name='username';";
using (SQLiteDataReader check_table = sqlite_cmd.ExecuteReader()) {
if (!check_table.HasRows) {
check_table.Close();
sqlite_cmd.CommandText = "CREATE TABLE IF NOT EXISTS username (id integer primary key, name varchar(20));";
sqlite_cmd.ExecuteNonQuery();
}
}
int sid = 0;
sqlite_cmd.CommandText = "select id from username order by id desc limit 1";
using (SQLiteDataReader Sid = sqlite_cmd.ExecuteReader()) {
while (Sid.Read()) { sid = int.Parse(Sid["id"].ToString()) + 1; }
}
sqlite_cmd.CommandText = "INSERT INTO username (id, name) VALUES ('" + sid + "', 'Steven');";
sqlite_cmd.ExecuteNonQuery();
//查詢資料並丟到datagridview
string strSQL = "select * from username";
SQLiteDataAdapter sda = new SQLiteDataAdapter(strSQL, sqlite_conn);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (Exception ex) {
MessageBox.Show("" + ex.Message);
}
}
else
MessageBox.Show("Can't find db file");
}
}
}
本人也才剛接觸C# 自己也有很多地方不懂得
只是為自己整理記錄一下使用過的東西
原始碼下載
感謝分享.
回覆刪除dll 部份如果使用 NuGet , 可能會比較好喔.
恩恩! 我現在也都直接改用NuGet安裝
回覆刪除快速又方便!!~~~