C# MySQL 連線(開發者指南)
C# MySQL 整合簡介
將 C# 應用程式連接到 MySQL 資料庫,可讓開發人員利用關聯式資料庫的強大功能來有效率地儲存、檢索和管理資料。 本指南提供了將MySQL與 C# 應用程式整合的逐步過程,並示範如何使用IronPDF 庫從 MySQL 資料庫中的資料產生 PDF。
先決條件
要按照本指南操作,您需要:
- Visual Studio 或任何 C# IDE
- 已安裝並正在執行的 MySQL 資料庫
- IronPDF 庫(用於生成 PDF 文件)
設定 MySQL 資料庫
安裝和設定 MySQL
- 從mysql.com下載最新版本的MySQL。
- 執行安裝程式並依照安裝說明進行操作。 選擇"開發人員預設設定"以包含 MySQL 伺服器和 MySQL Workbench。
- 在安裝過程中設定 MySQL root 使用者憑證,並確保 MySQL 服務正在執行。
建立範例資料庫和表格
- 開啟 MySQL Workbench 並連接到伺服器。
- 使用 SQL 指令建立一個新資料庫和一個範例表:
CREATE DATABASE SampleDB;
USE SampleDB;
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY AUTO_INCREMENT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Position VARCHAR(50),
Salary DECIMAL(10, 2)
);- 插入範例資料:
INSERT INTO Employees (FirstName, LastName, Position, Salary)
VALUES ('John', 'Doe', 'Software Developer', 80000),
('Jane', 'Smith', 'Data Analyst', 75000);設定用於遠端存取的 MySQL 使用者(可選)
要進行遠端訪問,請建立一個具有必要權限的 MySQL 使用者:
CREATE USER 'remoteUser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON SampleDB.* TO 'remoteUser'@'%';
FLUSH PRIVILEGES;將 C# 連接到 MySQL 資料庫
在 C# 中安裝 MySQL 資料庫
要將 C# 應用程式連接到 MySQL,我們使用 MySQL Connector/NET 程式庫(通常稱為 Connector/NET)。 這是 MySQL 的官方 .NET 驅動程序,可以透過 NuGet 安裝。
- 開啟 Visual Studio 並建立一個新的 C# 控制台應用程式。
- 透過 NuGet 套件管理器新增 MySql.Data 庫:
- 右鍵點選專案 >管理 NuGet 套件>瀏覽> 搜尋 MySql.Data 並安裝它。
編寫連接程式碼
以下程式碼範例示範如何建立與 MySQL 的連線:
using System;
using MySql.Data.MySqlClient;
public class Program
{
// Connection string containing the server, database, user credentials, etc.
private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
private void Initialize()
{
// Create a MySQL connection object
MySqlConnection connection = new MySqlConnection(connectionString);
try
{
connection.Open();
Console.WriteLine("Connected to MySQL Database!");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
finally
{
connection.Close(); // Ensure the connection is closed after use
}
}
}using System;
using MySql.Data.MySqlClient;
public class Program
{
// Connection string containing the server, database, user credentials, etc.
private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
private void Initialize()
{
// Create a MySQL connection object
MySqlConnection connection = new MySqlConnection(connectionString);
try
{
connection.Open();
Console.WriteLine("Connected to MySQL Database!");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
finally
{
connection.Close(); // Ensure the connection is closed after use
}
}
}解釋: -連接字串:包含伺服器、資料庫名稱、使用者 ID 和密碼等詳細資訊。
- MySqlConnection:用於建立連線。
- Open() 方法:嘗試開啟連線。 -異常處理:捕獲異常以優雅地處理連接錯誤。
使用 DNS SRV 記錄進行連線(可選)
如果您的應用程式託管在雲端或需要透過 DNS SRV 記錄連接到 MySQL 資料庫,您可以將伺服器名稱替換為解析到資料庫 IP 位址的相應 DNS 項目。
string connectionString = "Server=mysql.example.com;Database=SampleDB;User ID=root;Password=yourpassword;";string connectionString = "Server=mysql.example.com;Database=SampleDB;User ID=root;Password=yourpassword;";連接池
預設情況下,MySQL Connector/NET 支援連線池,這有助於更有效地管理資料庫連線。 連接池透過重複使用池中的現有連接,減少了重複開啟和關閉連線的開銷。
如果要自訂連線池行為,可以像這樣調整連線字串:
string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;Pooling=true;";string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;Pooling=true;";處理常見錯誤
常見問題包括連接字串錯誤、防火牆限製或 MySQL 服務未執行。 請確保所有設定資訊正確,並且 MySQL 服務已啟動。
使用 C# 和 MySQL 執行 CRUD 操作
建立用於資料庫操作的 C# 類
為了程式碼組織,建立一個DatabaseHelper類別來處理所有資料庫操作。 此類別將包含插入、讀取、更新和刪除資料(CRUD)操作的方法。
using System;
using MySql.Data.MySqlClient;
public class DatabaseHelper
{
private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
// Method to insert a new employee record
public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
MySqlCommand cmd = new MySqlCommand(query, connection);
// Add parameters to prevent SQL injection
cmd.Parameters.AddWithValue("@FirstName", firstName);
cmd.Parameters.AddWithValue("@LastName", lastName);
cmd.Parameters.AddWithValue("@Position", position);
cmd.Parameters.AddWithValue("@Salary", salary);
connection.Open();
cmd.ExecuteNonQuery(); // Execute the insert command
}
}
}using System;
using MySql.Data.MySqlClient;
public class DatabaseHelper
{
private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
// Method to insert a new employee record
public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
MySqlCommand cmd = new MySqlCommand(query, connection);
// Add parameters to prevent SQL injection
cmd.Parameters.AddWithValue("@FirstName", firstName);
cmd.Parameters.AddWithValue("@LastName", lastName);
cmd.Parameters.AddWithValue("@Position", position);
cmd.Parameters.AddWithValue("@Salary", salary);
connection.Open();
cmd.ExecuteNonQuery(); // Execute the insert command
}
}
}解釋: -參數化:使用@Parameter可以降低 SQL 注入的風險。
- connection.Open():開啟 MySQL 連線。
- cmd.ExecuteNonQuery():執行插入查詢。
將資料插入 MySQL 資料庫
若要新增新的員工數據,請呼叫InsertEmployee方法:
DatabaseHelper dbHelper = new DatabaseHelper();
dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);DatabaseHelper dbHelper = new DatabaseHelper();
dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);資料檢索與顯示
檢索資料並將其顯示在控制台中:
public void GetEmployees()
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "SELECT * FROM Employees";
MySqlCommand cmd = new MySqlCommand(query, connection);
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"{reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
}
}
}
}public void GetEmployees()
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "SELECT * FROM Employees";
MySqlCommand cmd = new MySqlCommand(query, connection);
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"{reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
}
}
}
}解釋:
- ExecuteReader():執行 select 查詢並傳回 MySqlDataReader 物件。
- reader.Read():遍歷結果集,顯示每位員工的詳細資料。
更新和刪除記錄
以下是更新員工薪資的範例:
public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
MySqlCommand cmd = new MySqlCommand(query, connection);
// Parameterize the SQL command
cmd.Parameters.AddWithValue("@Salary", newSalary);
cmd.Parameters.AddWithValue("@EmployeeID", employeeId);
connection.Open();
cmd.ExecuteNonQuery(); // Execute the update command
Console.WriteLine("Employee salary updated successfully!");
}
}public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
MySqlCommand cmd = new MySqlCommand(query, connection);
// Parameterize the SQL command
cmd.Parameters.AddWithValue("@Salary", newSalary);
cmd.Parameters.AddWithValue("@EmployeeID", employeeId);
connection.Open();
cmd.ExecuteNonQuery(); // Execute the update command
Console.WriteLine("Employee salary updated successfully!");
}
}更新指令:使用參數化查詢根據員工 ID 更新薪資列。
使用 IronPDF 從 MySQL 資料產生 PDF
IronPDF簡介
IronPDF是一個強大的庫,允許開發人員在 C# 應用程式中輕鬆建立、編輯和操作 PDF 文件。 它支援多種 PDF 功能,是需要自動產生報告、文件處理或 HTML 轉 PDF 的資料驅動型應用程式的完美工具。 無論您是需要將動態網頁轉換為 PDF 文件,還是從頭開始產生自訂 PDF,IronPDF 都能透過幾行程式碼簡化流程。
IronPDF 的主要特點
- HTML 轉 PDF 轉換: IronPDF 的一個突出特點是能夠將 HTML 內容轉換為格式完整的 PDF 文件。 此功能在從動態 Web 內容產生報表或處理以 Web 格式儲存的資料時特別有用。 *編輯 PDF: IronPDF 允許編輯現有的 PDF,包括新增、刪除和修改內容,例如文字、圖像、表格等。 對於需要處理或更新現有文件的應用程式來說,這是理想的選擇。
- PDF 合併和分割:使用 IronPDF,您可以輕鬆地將多個 PDF 合併到一個文件中,或將一個大的 PDF分割成更小的文件。 此功能對於組織和管理大量文件非常有用。 *樣式和自訂:從 HTML 產生 PDF 時,您可以使用 CSS 來設定文件樣式,並實現與應用程式設計相符的自訂佈局。 IronPDF 讓您可以完全控制 PDF 的外觀,確保它們符合您的特定要求。
在 C# 項目中設定 IronPDF
若要使用IronPDF ,請透過 Visual Studio 中的 NuGet 套件管理器進行安裝:
Install-Package IronPdf
將 MySQL 資料轉換為 PDF 格式
以下是完整的程式碼範例,展示如何建立員工資料的 PDF 報告:
using System;
using MySql.Data.MySqlClient;
using IronPdf;
public class Program
{
private static string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
public static void Main(string[] args)
{
// Perform CRUD operations
DatabaseHelper dbHelper = new DatabaseHelper();
// Insert a new employee
dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);
// Display employees
dbHelper.GetEmployees();
// Update an employee's salary
dbHelper.UpdateEmployeeSalary(1, 95000);
// Generate a PDF report
dbHelper.GenerateEmployeeReportPDF();
Console.WriteLine("Operations completed.");
}
}
public class DatabaseHelper
{
private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
// Insert employee into database
public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.Parameters.AddWithValue("@FirstName", firstName);
cmd.Parameters.AddWithValue("@LastName", lastName);
cmd.Parameters.AddWithValue("@Position", position);
cmd.Parameters.AddWithValue("@Salary", salary);
connection.Open();
cmd.ExecuteNonQuery();
Console.WriteLine($"Employee {firstName} {lastName} inserted successfully!");
}
}
// Get employees from the database and display them
public void GetEmployees()
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "SELECT * FROM Employees";
MySqlCommand cmd = new MySqlCommand(query, connection);
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
Console.WriteLine("\nEmployee List:");
while (reader.Read())
{
Console.WriteLine($"{reader["EmployeeID"]} - {reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
}
}
}
}
// Update the salary of an employee
public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.Parameters.AddWithValue("@Salary", newSalary);
cmd.Parameters.AddWithValue("@EmployeeID", employeeId);
connection.Open();
cmd.ExecuteNonQuery();
Console.WriteLine($"Employee ID {employeeId}'s salary updated to {newSalary}.");
}
}
// Generate a PDF report of all employees
public void GenerateEmployeeReportPDF()
{
string htmlContent = "<h1>Employee Report</h1><table border='1'><tr><th>EmployeeID</th><th>First Name</th><th>Last Name</th><th>Position</th><th>Salary</th></tr>";
using (var connection = new MySqlConnection(connectionString))
{
string query = "SELECT * FROM Employees";
MySqlCommand cmd = new MySqlCommand(query, connection);
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
htmlContent += $"<tr><td>{reader["EmployeeID"]}</td><td>{reader["FirstName"]}</td><td>{reader["LastName"]}</td><td>{reader["Position"]}</td><td>{reader["Salary"]}</td></tr>";
}
}
}
htmlContent += "</table>";
// Use IronPDF to convert HTML to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("EmployeeReport.pdf");
Console.WriteLine("PDF Report generated successfully!");
}
}using System;
using MySql.Data.MySqlClient;
using IronPdf;
public class Program
{
private static string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
public static void Main(string[] args)
{
// Perform CRUD operations
DatabaseHelper dbHelper = new DatabaseHelper();
// Insert a new employee
dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);
// Display employees
dbHelper.GetEmployees();
// Update an employee's salary
dbHelper.UpdateEmployeeSalary(1, 95000);
// Generate a PDF report
dbHelper.GenerateEmployeeReportPDF();
Console.WriteLine("Operations completed.");
}
}
public class DatabaseHelper
{
private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
// Insert employee into database
public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.Parameters.AddWithValue("@FirstName", firstName);
cmd.Parameters.AddWithValue("@LastName", lastName);
cmd.Parameters.AddWithValue("@Position", position);
cmd.Parameters.AddWithValue("@Salary", salary);
connection.Open();
cmd.ExecuteNonQuery();
Console.WriteLine($"Employee {firstName} {lastName} inserted successfully!");
}
}
// Get employees from the database and display them
public void GetEmployees()
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "SELECT * FROM Employees";
MySqlCommand cmd = new MySqlCommand(query, connection);
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
Console.WriteLine("\nEmployee List:");
while (reader.Read())
{
Console.WriteLine($"{reader["EmployeeID"]} - {reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
}
}
}
}
// Update the salary of an employee
public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
{
using (var connection = new MySqlConnection(connectionString))
{
string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.Parameters.AddWithValue("@Salary", newSalary);
cmd.Parameters.AddWithValue("@EmployeeID", employeeId);
connection.Open();
cmd.ExecuteNonQuery();
Console.WriteLine($"Employee ID {employeeId}'s salary updated to {newSalary}.");
}
}
// Generate a PDF report of all employees
public void GenerateEmployeeReportPDF()
{
string htmlContent = "<h1>Employee Report</h1><table border='1'><tr><th>EmployeeID</th><th>First Name</th><th>Last Name</th><th>Position</th><th>Salary</th></tr>";
using (var connection = new MySqlConnection(connectionString))
{
string query = "SELECT * FROM Employees";
MySqlCommand cmd = new MySqlCommand(query, connection);
connection.Open();
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
htmlContent += $"<tr><td>{reader["EmployeeID"]}</td><td>{reader["FirstName"]}</td><td>{reader["LastName"]}</td><td>{reader["Position"]}</td><td>{reader["Salary"]}</td></tr>";
}
}
}
htmlContent += "</table>";
// Use IronPDF to convert HTML to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("EmployeeReport.pdf");
Console.WriteLine("PDF Report generated successfully!");
}
}代碼分解
1.連接到 MySQL 資料庫:
connectionString定義了 MySQL 伺服器、資料庫、使用者和密碼。- 您可以使用
MySqlConnection進行連接,並使用MySqlCommand處理 CRUD 操作。
2.插入操作(InsertEmployee):
- 使用帶有參數化查詢(
@FirstName、@LastName等)的MySqlCommand來防止 SQL 注入。 - 開啟連線 (
connection.Open()) 後,ExecuteNonQuery()會執行 INSERT SQL 語句。
3.讀取操作(GetEmployees):
- 執行
SELECT *查詢以取得所有員工記錄。 - 使用
MySqlDataReader遍歷結果集,並在控制台中顯示每筆記錄。
4.更新操作(UpdateEmployeeSalary):
- 此方法接受
employeeId和newSalary來更新員工的薪資。 它使用參數化的 UPDATE SQL 查詢。
- PDF 產生(GenerateEmployeeReportPDF):
- 將員工資料收集到具有簡單表格結構的 HTML 字串中。
- 將 HTML 內容傳遞給 IronPDF 的
RenderHtmlAsPdf方法以產生 PDF 報告。 - 產生的 PDF 檔案儲存為
EmployeeReport.pdf。
結論
本文介紹了將 MySQL 與 C# 應用程式整合的基本步驟。 從設定資料庫和執行 CRUD 操作到使用 IronPDF 產生 PDF,我們涵蓋了建立資料驅動型應用程式至關重要的各種基礎主題。 以下是主要概念的回顧:
- MySQL 和 C# 整合:我們示範如何使用 MySql.Data 函式庫連接到 MySQL 資料庫、管理資料庫連線以及使用參數化查詢執行 CRUD 操作。 這樣可以確保資料能夠以安全有序的方式有效地儲存、更新和檢索。 *執行 CRUD 操作:透過插入、更新和讀取員工資料的範例方法,您可以擴展此邏輯來管理真實資料庫中的其他類型記錄。 使用參數化查詢還有助於緩解 SQL 注入攻擊,從而確保應用程式的安全。
- IronPDF 用於產生 PDF: IronPDF 可以輕鬆地從動態 HTML 內容產生專業外觀的 PDF。 透過將從 MySQL 檢索的資料轉換為 HTML 表格,我們可以建立自訂報告並將其儲存為 PDF,這對於產生發票、報告、摘要等非常有用。 IronPDF 簡單易用的 API 使其成為任何需要在應用程式中處理 PDF 產生的 C# 開發人員的優秀工具。
透過將 C# 和 MySQL 結合使用,開發人員可以建立強大的應用程序,用於儲存和管理數據,同時提供 PDF 報告等高級功能。 這些功能在各個行業都非常有用,從金融到醫療保健,在這些行業中,準確的數據管理和報告至關重要。
對於希望將 PDF 生成功能整合到 C# 應用程式中的開發人員來說, IronPDF可以讓您測試其全部功能。 無論您需要產生簡單的文件還是複雜的報告,IronPDF 都是您在工作流程中自動建立 PDF 的寶貴工具。
常見問題解答
將 MySQL 與 C# 應用程式整合有哪些先決條件?
要將 MySQL 與 C# 應用程式集成,您需要一個類似 Visual Studio 的 IDE、一個正在運行的 MySQL 資料庫以及用於從資料庫內容產生 PDF 的 IronPDF。
如何使用 C# 將 MySQL 資料轉換為 PDF?
你可以先將 MySQL 資料轉換為 HTML 字串,然後使用 IronPDF 的RenderHtmlAsPdf方法產生 PDF 文檔,從而將 MySQL 資料轉換為 PDF。
如何安裝和設定 MySQL 以便在 C# 中使用?
從 mysql.com 下載 MySQL,執行安裝程序,然後按照安裝說明進行操作。選擇「開發人員預設設定」以安裝 MySQL 伺服器和 Workbench,並設定 root 使用者憑證。
推薦使用哪個函式庫來實現 C# 和 MySQL 資料庫的連線?
建議使用 MySQL Connector/NET 程式庫來建立 C# 應用程式和 MySQL 資料庫之間的連線。它允許使用連接字串來簡化通訊。
使用 C# 和 MySQL 時,如何確保 SQL 查詢的安全性?
為了確保 SQL 查詢的安全,請使用參數化查詢,參數化查詢可以透過確保正確的輸入驗證來幫助防止 SQL 注入攻擊。
在 MySQL 和 C# 的上下文中,連線池是什麼?
連線池是指從連線池重複使用資料庫連線的做法,它透過減少重複開啟和關閉連線所帶來的開銷來提高效率。
如何在 MySQL 中建立用於 C# 整合的範例資料庫和表格?
開啟 MySQL Workbench,連接到您的伺服器,並使用CREATE DATABASE SampleDB;和CREATE TABLE Employees (...);等 SQL 指令來設定範例資料庫和表。
我應該為 C# 應用程式選擇哪些 PDF 庫?
一個強大的 C# PDF 庫應該提供 HTML 到 PDF 的轉換、PDF 編輯、合併和分割等功能,以及使用 CSS 應用自訂樣式的功能,就像 IronPDF 提供的功能一樣。
如何使用 C# 對 MySQL 資料庫執行 CRUD 操作?
透過在 C# 中建立一個輔助類別來實現 CRUD 操作,該輔助類別在方法中使用參數化的 SQL 命令來插入、讀取、更新和刪除 MySQL 資料庫中的資料。
如何使用 C# 更新 MySQL 資料庫中員工的詳細資訊?
使用參數化的UPDATE SQL 命令,透過 C# 編寫方法來更新員工的詳細信息,允許根據 EmployeeID 進行諸如工資更新之類的修改。







