在 C# 中選擇查詢資料庫
本文將指導你建立與 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 |
Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn