一、連接數據庫

1.定義連接數據庫的字符串

 string source = "server=(local); integrated security=SSPI; database=test";

2.數據庫連接開啟、關閉

 var conn = new SqlConnection(source);
conn.Open()
// do something
conn.Close()

3.對數據庫連接進行優化

  數據庫連接屬於稀缺資源的使用,使用完後必須立即關閉避免出現資源匱乏的情況。因此關閉數據庫連接應是強制的,可以通過兩種方式來確保數據庫資源使用完后立即釋放。

  3.1 使用try...catch...finally語句塊

 try
{
conn.Open();
// Do something
}
catch (SqlException e)
{
// Log the exception
}
finally
{
conn.Close();
}

  3.2 使用using語句塊

 using (SqlConnction conn = new SqlConnection(source))
{
conn.Open();
// Do something
}

  3.3 將using語句塊與try...catch...finally語句塊結合

 try
{
using (var conn = new SqlConnction(source))
{
conn.Open();
// Do something
conn.Close();
}
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}

二、操作數據庫

1. SELECT操作

//    連接數據庫語句在這寫
string select = "SELECT UserName FROM _Users";
// 開啟數據庫語句在這寫
var cmd = new SqlCommand(select, conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader[]);
}
// 關閉數據庫語句在這寫

2. INSERT操作

 //  連接數據庫語句在這寫

 string insert = "INSERT INTO _Users (Id, Name, UserName, Password, Score) VALUES (@ID, @NAME, @USERNAME, @PASSWORD, @SCORE)";

 //  開啟數據庫語句在這寫

 var cmd = new SqlCommand(insert, conn);
SqlParameter[] param = {
new SqlParameter("@ID", user.Id),
new SqlParameter("@NAME", user.Name),
new SqlParameter("@USERNAME", user.UserName),
new SqlParameter("@PASSWORD", user.Password),
new SqlParameter("@SCORE", user.HightScore),
};
15 for (int i = ; i < ; i++)
{
cmd.Parameters.Add(param[i]);
}
cmd.ExecuteNonQuery(); // 關閉數據庫語句在這寫

3. DELECT操作

 string userName = Console.ReadLine();

 //    連接數據庫操作寫在這

 var delete = "DELETE FROM _Users WHERE UserName = '"+userName+"'";

 //    開啟數據庫操作寫在這

 var cmd = new SqlCommand(delete, conn);
int res = cmd.ExecuteNonQuery();
if (res == )
Console.Write("刪除失敗.");
else
Console.Write("刪除成功"); // 關閉數據庫操作寫在這

4. UPDATE操作

 string userName = Console.ReadLine();
string password = Console.ReadLine();
// 連接數據庫寫在這 var update = "UPDATE _Users SET Password = '"+new_password+"' WHERE UserName = '"+userName+"' "; // 開啟數據庫操作寫在這 var cmd = new SqlCommand(update, conn);
var res = cmd.ExecuteNonQuery();
if (res == )
Console.WriteLine("修改失敗.");
else
Console.WriteLine("修改成功."); // 關閉數據庫操作寫在這

三、在數據庫語句中傳遞參數的兩個方法

1.直接寫入法

  參考第二節第3小節“DELETE操作”代碼。

2.給命令對象添加參數法

  參考第二節第3小節“INSERT操作”代碼。

05-11 13:17