欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#數據庫

程序员文章站 2022-12-29 14:53:38
一、連接數據庫 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操作”代碼。