Việc hiểu quan hệ giữa C# và Database trong việc xây dựng các ứng dụng (website) là rất quan trọng, Trong loạt bài viết này sẽ cung cấp các kiến thức nền tảng trong việc kết nối C# với Database. Bạn xem và bổ xung kiến thức cho khả năng lập trình của mình.
Trong bài viết đầu tiên này mình sẽ giới thiệu về Kết nối C# với Database
Microsoft cung cấp các "data provider" như sau:
Data Provider | Namespace | Connection Class |
ODBC | System.Data.Odbc | OdbcConnection |
OLE | DB System.Data.Oledb | OledbConnection |
Oracle | System.Data.OracleClient | OracleConnection |
SQL Server | System.Data.SqlClient | SqlConnection |
SQL Server | CESystem.Data.SqlServerCe | SqlCeConnection |
Trong đó thường sử dụng nhất là: ODBC, OLE DB, SQL Server. Trong đó SQL là được dùng rộng rãi nhất, vì vậy SQL sẽ được chọn để minh họa. Và mình sẽ sử dụng Northwind database là cơ sở dữ liệu mẫu có sẵn khi bạn cài SQL server.
Ta sẽ bắt đầu bằng việc mở kết nối như ví dụ dưới đây:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Database : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string connectString = @"Server =.\SQL2005;Initial Catalog=Northwind;User ID=sa;Password=******";
// Tạo một connection tới máy chủ
SqlConnection conn = new SqlConnection(connectionString);
try
{
conn.Open();
//thuc hien cac cong viec can thiet o day
}
catch (SqlException ex)
{
Console.WriteLine("Error: " + ex);
}
finally
{
conn.Close();
}
}
}
Như vậy là xong việc kết nối.
Lưu ý:
Khối lệnh try..catch..finally là khối lệnh bạn nên luôn luôn thực hiện vì những lý do sau: Nếu bạn thực hiện lệnh conn.Open() thành công nó sẽ nhảy xuống thực hiện khối lệnh trong finally là conn.Close(), còn nếu kết nối không thành công nó sẽ xử lý ngoại lệ (Khối catch), sau đó cũng nhảy xuống thực hiện conn.Close(). Như vậy ta thấy dù kết nối thành công hay ko thành công thì việc conn.Close() trong khối lệnh finally đều được thực thi và nó sẽ hạn chế sự hao tổn tài nguyên. Vậy là cứ mở kết nối thực thi các yêu cầu xong ta lại đóng kết nối lại -> Sẽ không tốn tài nguyên.
Nếu bạn sử dụng Windows Authentication thì chuỗi kết nối như sau: string connectString = @"Server =.\SQL2005;database=Northwind;Integrated Security = true";
Tới đây ta đã xong bước đầu khi nhập môn C# with database.
Trong bài tiếp theo mình sẽ trình bày về SqlCommand