一、連接數據庫 1.定義連接數據庫的字元串 2.數據庫連接開啟、關閉 3.對數據庫連接進行優化 數據庫連接屬於稀缺資源的使用,使用完後必須立即關閉避免出現資源匱乏的情況。因此關閉數據庫連接應是強制的,可以通過兩種方式來確保數據庫資源使用完後立即釋放。 3.1 使用try...catch...fina ...
一、連接數據庫
1.定義連接數據庫的字元串
1 string source = "server=(local); integrated security=SSPI; database=test";
2.數據庫連接開啟、關閉
1 var conn = new SqlConnection(source); 2 conn.Open() 3 // do something 4 conn.Close()
3.對數據庫連接進行優化
數據庫連接屬於稀缺資源的使用,使用完後必須立即關閉避免出現資源匱乏的情況。因此關閉數據庫連接應是強制的,可以通過兩種方式來確保數據庫資源使用完後立即釋放。
3.1 使用try...catch...finally語句塊
1 try 2 { 3 conn.Open(); 4 // Do something 5 } 6 catch (SqlException e) 7 { 8 // Log the exception 9 } 10 finally 11 { 12 conn.Close(); 13 }
3.2 使用using語句塊
1 using (SqlConnction conn = new SqlConnection(source)) 2 { 3 conn.Open(); 4 // Do something 5 }
3.3 將using語句塊與try...catch...finally語句塊結合
1 try 2 { 3 using (var conn = new SqlConnction(source)) 4 { 5 conn.Open(); 6 // Do something 7 conn.Close(); 8 } 9 } 10 catch (SqlException e) 11 { 12 Console.WriteLine(e.Message); 13 }
二、操作數據庫
1. SELECT操作
// 連接數據庫語句在這寫 string select = "SELECT UserName FROM _Users"; // 開啟數據庫語句在這寫 var cmd = new SqlCommand(select, conn); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader[0]); } // 關閉數據庫語句在這寫
2. INSERT操作
1 // 連接數據庫語句在這寫 2 3 string insert = "INSERT INTO _Users (Id, Name, UserName, Password, Score) VALUES (@ID, @NAME, @USERNAME, @PASSWORD, @SCORE)"; 4 5 // 開啟數據庫語句在這寫 6 7 var cmd = new SqlCommand(insert, conn); 8 SqlParameter[] param = { 9 new SqlParameter("@ID", user.Id), 10 new SqlParameter("@NAME", user.Name), 11 new SqlParameter("@USERNAME", user.UserName), 12 new SqlParameter("@PASSWORD", user.Password), 13 new SqlParameter("@SCORE", user.HightScore), 14 }; 15 for (int i = 0; i < 5; i++) 16 { 17 cmd.Parameters.Add(param[i]); 18 } 19 cmd.ExecuteNonQuery(); 20 21 // 關閉數據庫語句在這寫
3. DELECT操作
1 string userName = Console.ReadLine(); 2 3 // 連接數據庫操作寫在這 4 5 var delete = "DELETE FROM _Users WHERE UserName = '"+userName+"'"; 6 7 // 開啟數據庫操作寫在這 8 9 var cmd = new SqlCommand(delete, conn); 10 int res = cmd.ExecuteNonQuery(); 11 if (res == 0) 12 Console.Write("刪除失敗."); 13 else 14 Console.Write("刪除成功"); 15 16 // 關閉數據庫操作寫在這
4. UPDATE操作
1 string userName = Console.ReadLine(); 2 string password = Console.ReadLine(); 3 // 連接數據庫寫在這 4 5 var update = "UPDATE _Users SET Password = '"+new_password+"' WHERE UserName = '"+userName+"' "; 6 7 // 開啟數據庫操作寫在這 8 9 var cmd = new SqlCommand(update, conn); 10 var res = cmd.ExecuteNonQuery(); 11 if (res == 0) 12 Console.WriteLine("修改失敗."); 13 else 14 Console.WriteLine("修改成功."); 15 16 // 關閉數據庫操作寫在這
三、在數據庫語句中傳遞參數的兩個方法
1.直接寫入法
參考第二節第3小節“DELETE操作”代碼。
2.給命令對象添加參數法
參考第二節第3小節“INSERT操作”代碼。