· 8 years ago · Jan 23, 2018, 08:44 PM
1using System;
2using Community.CsharpSqlite.SQLiteClient;
3
4namespace csharp_sqlite_testproject
5{
6 class SecondStep
7 {
8 // DB接続文å—列
9 // ã“ã®è¨˜è¿°ã§ã‚«ãƒ¬ãƒ³ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã® db.sqlite ãŒæŽ¥ç¶šå…ˆã¨ãªã‚‹
10 private const String connectionStr = @"uri=file:db.sqlite";
11
12 // (å‚考)hogeテーブル作æˆç”¨SQL
13 private const String createTableSQL = @"CREATE TABLE IF NOT EXISTS hoge(name, email)";
14
15 // INSERTæ–‡
16 private const String insertSQL1 = @"INSERT INTO hoge VALUES ('foo','foo@example.com')";
17 private const String insertSQL2 = @"INSERT INTO hoge VALUES ('bar','bar@example.com')";
18
19 // UPDATEæ–‡
20 private const String updateSQL = @"UPDATE hoge SET name='hoge' , email='hoge@example.com' WHERE name='bar'";
21
22 // DELETEæ–‡
23 private const String deleteSQL = @"DELETE FROM hoge WHERE name='foo'";
24
25 // Insert, Update, Delete
26 // ã‚ã¨usingを色々ã¨ä½¿ã£ã¦ã¿ã‚‹
27 public void Start()
28 {
29 // DB接続
30 using (var con = new SqliteConnection(connectionStr))
31 {
32 con.Open(); // Openã¯æ‰‹å‹•
33
34 // トランザクション
35 using (var tran = con.BeginTransaction())
36 {
37 // SQLコマンド用
38 using (var cmd = con.CreateCommand())
39 {
40 // SQLコマンドã®ã‚ªãƒ–ジェクトã¯ä½¿ã„回ã—ãŒå¯èƒ½
41 cmd.CommandText = insertSQL1;
42 var enq1 = cmd.ExecuteNonQuery();
43 Console.WriteLine("変更行数:{0}", enq1);
44
45 cmd.CommandText = insertSQL2;
46 var enq2 = cmd.ExecuteNonQuery();
47 Console.WriteLine("変更行数:{0}", enq2);
48
49 cmd.CommandText = updateSQL;
50 var enq3 = cmd.ExecuteNonQuery();
51 Console.WriteLine("変更行数:{0}", enq3);
52
53 cmd.CommandText = deleteSQL;
54 var enq4 = cmd.ExecuteNonQuery();
55 Console.WriteLine("変更行数:{0}", enq4);
56 }
57
58 tran.Commit(); // コミットも手動
59 }
60 }
61 }
62 }
63}