C#數據庫

一、連接數據庫

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操作”代碼。

猜你喜欢

转载自www.cnblogs.com/Yuzex96ch/p/CSharpADO.html