HOWTO · Csharp
在 C# 中選擇查詢資料庫
關於在 C# 中使用 SELECT 查詢設定資料庫連線和檢索記錄的完整程式設計教程。
本文將指導你建立與 C# 應用程式的資料庫連線,並使用資料庫中的 SELECT 查詢從不同的表中獲取資料。
什麼是資料庫
資料庫不僅僅是以表格形式組織的資料集合,還有更多。它以有組織的結構表示資料,具有適當的命名約定以及與其他表的關係。
資料庫管理系統還提供了一種與資料庫互動的語言(例如 SQL),該語言非常接近英語,因此使用者非常容易理解。它還為我們提供了資料安全和優化方案,以提高資料操作的效能。
C# 中的資料庫連線
通常,程式設計師使用資料庫來儲存他們的應用程式的資料。C# 語言為 Oracle 資料庫和 Microsoft SQL server 資料庫提供資料庫程式設計。
C# 也可以與許多其他資料庫一起使用,但以上兩個是最常見和廣泛使用的。無論你的資料庫是什麼,每個資料庫背後的邏輯都是相同的。
本文將使用 SQL Server 資料庫來執行操作。資料庫操作所需的名稱空間是 System.data.SqlClient。
它包含資料庫連線和操作期間所需的所有類。
在 SQL Server 中建立資料庫
第一步是建立一個需要在 SQL Server 中與之互動的資料庫。該資料庫是使用以下查詢建立的。
create database mydb;
use mydb;
CREATE TABLE Student(
studentID varchar(20) NOT NULL PRIMARY KEY,
stuentName varchar(60) NOT NULL
);
insert into Student values("BS01", 'David');
insert into Student values("BS02", 'John');
執行這些查詢後,將建立一個包含表 Student 的資料庫,其中包含 2 行。
在 C# 中與資料庫建立連線
為了與資料庫互動,你需要一些引數。這些引數組合起來形成一個連線字串。
- 資料庫名稱 - 你需要提供你需要從中讀取資料的資料庫的名稱。建議一次只使用一個資料庫。
- 資料庫憑證 - 與資料庫互動總是有一個使用者名稱和密碼,因此你需要提供該授權使用者名稱和密碼。
- 一些可選引數 - 你還可以提供一些可選引數。例如,你可以設定一個超時值,如果資料庫在一段時間內保持不活動狀態,則應關閉連線。
讓我們看一下示例程式碼,我們將在其中執行與資料庫的連線。假設資料庫使用者名稱是 usr,密碼是 usr123。
SqlConnection conn;
string connectString =
@"Data Source=DESKTOP-FQ8R559;Initial Catalog=mydb;User ID=usr;Password=usr123";
conn = new SqlConnection(connectString);
conn.Open();
Console.WriteLine("Connection Established");
從資料庫中讀取資料
我們需要 SqlCommand 類和 SqlDataReader 從資料庫中讀取資料。SqlCommand 類用於在資料庫上執行命令。
執行 Select 命令會生成 Resultset。這個 Resultset 可以使用 SqlDataReader 類讀取。
讓我們看看下面的程式碼。
SqlCommand cmd;
SqlDataReader dataReader;
string sql = "Select * from Student";
cmd = new SqlCommand(sql, conn);
dataReader = cmd.ExecuteReader();
Console.WriteLine("Data from the Database..");
while (dataReader.Read()) {
Console.WriteLine(dataReader.GetValue(0) + " || " + dataReader.GetValue(1));
}
dataReader.close();
conn.close();
在這個程式碼片段中,首先,我們建立了一個 SqlCommand 物件並建立了一個我們需要在資料庫上執行的查詢。然後這個查詢被髮送到 cmd 物件和連線物件 conn。
為了執行查詢,我們使用函式 ExecuteReader(),它返回一個 Resultset,其中包含在查詢中獲取的資料。這個 ResultSet 可以使用 SqlDataReader 物件讀取,該物件逐行讀取迴圈中的資料。
最後,我們需要關閉閱讀器和連線物件,以便釋放它們以供進一步使用。
上述程式碼的輸出將是:
Connection Established.
Data from the Database..
BS01 || David
BS02 || John
請注意,我們使用 ExecuteReader() 函式來執行 Select 查詢。要執行更多型別的查詢,我們需要不同的方法。
一些流行的查詢結果閱讀器是:
| 函式名稱 | 描述 |
|---|---|
ExecuteReader() |
用於執行可以以表格形式返回資料的查詢的函式。 |
ExecuteNonQuery() |
用於在資料庫中執行 DML 查詢的函式,例如 insert、update 等。 |
ExeuteScalar() |
用於返回單個值的查詢的函式,例如 count |