C# là một ngôn ngữ lập trình được phát triển bởi 
Microsoft (năm 2002), cho phép xây dựng các ứng dụng 
trên nền tảng .NET
 Dựa trên C++ và Java
 Một số đặc điểm:
 Thuần tuý hướng đối tượng
 Không dùng con trỏ và địa chỉ
 Đơn giản và dễ học
              
                                            
                                
            
 
            
                 17 trang
17 trang | 
Chia sẻ: luyenbuizn | Lượt xem: 1958 | Lượt tải: 0 
              
            Nội dung tài liệu SQL Server và C#, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
SQL Server & C# 
1 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Giới thiệu C# 
 C# là một ngôn ngữ lập trình được phát triển bởi 
Microsoft (năm 2002), cho phép xây dựng các ứng dụng 
trên nền tảng .NET 
 Dựa trên C++ và Java 
 Một số đặc điểm: 
 Thuần tuý hướng đối tượng 
 Không dùng con trỏ và địa chỉ 
 Đơn giản và dễ học 
2 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ 
 Chương trình Hello World 
public class HelloWorld 
{ 
 public static void Main() 
 { 
 System.Console.WriteLine("Hello!"); 
 } 
} 
3 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Hàm main 
Xuất ra console 
Khai báo lớp 
Tạo ứng dụng C# (MS Visual Studio .NET 2008) 
4 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
1 
2 
3 
Tạo ứng dụng C# (tiếp) 
5 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
IO chuẩn trong C# 
 Xuất ra đầu ra chuẩn: 
 System.Console.Write(...) 
 System.Console.WriteLine(...) 
 Đọc từ đầu vào chuẩn: 
 string System.Console.ReadLine() 
 chuyển sang các dạng dữ liệu mong muốn 
 Ví dụ: 
 System.Console.Write("Nhap mot so nguyen: "); 
 string s = System.Console.ReadLine(); 
 int val = int.Parse(s); 
6 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Giao tiếp với SQL Server 
 Thư viện cần sử dụng: System.Data.SqlClient 
 using System.Data.SqlClient; 
 Các lớp cần sử dụng: 
 SqlConnection: thiết lập kết nối với SQL Server 
 SqlCommand: thực thi các câu truy vấn 
 SqlParameter: tham số của câu truy vấn 
 SqlDataReader: lấy dữ liệu trả về của câu truy vấn 
 SqlException: xử lý lỗi 
 Tạo đối tượng trong C#: bằng toán tử new 
 SqlConnection conn = new SqlConnection(); 
7 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Thiết lập kết nối 
 Sử dụng đối tượng của lớp SqlConnection 
 Các tham số được đưa vào thuộc tính 
ConnectionString 
 Gọi hàm Open() để thiết lập kết nối 
 Gọi hàm Close() để đóng kết nối 
8 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
SQL 
Server 
Client network 
Ví dụ 
const string SERVER = "localhost"; 
const string INSTANCE = "SQLEXPRESS"; 
const string USERNAME = "kien"; 
const string PASSWORD = "kien"; 
const string DATABASE = "abc"; 
SqlConnection conn = new SqlConnection(); 
conn.ConnectionString = string.Format( 
 @"Data Source={0}\{1};" + 
 "Initial Catalog={2};" + 
 "User Id={3};" + 
 "Password={4};" + 
 "Connection Timeout=10", 
 SERVER, INSTANCE, DATABASE, USERNAME, PASSWORD); 
conn.Open(); 
// Do stuff... 
conn.Close(); 
9 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Thực thi câu truy vấn 
 Tạo đối tượng SqlCommand 
 SqlCommand cmd = new SqlCommand(query, conn); 
 query: chuỗi chứa câu truy vấn 
 conn: kết nối đã được thiết lập 
 Tuỳ từng trường hợp, dùng một trong các hàm sau để 
thực thi câu truy vấn: 
 ExecuteNonQuery(): 
 Trả về số hàng đã bị ảnh hưởng (thêm/bớt/thay đổi) 
 ExecuteScalar(): 
 Trả về giá trị đầu tiên trả về của câu truy vấn 
 ExecuteReader(): 
 Trả về một đối tượng SqlDataReader dùng để đọc dữ liệu 
10 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ: SELECT (1) 
SqlCommand cmd = new SqlCommand( 
 "select count(*) from Book", conn); 
object result = cmd.ExecuteScalar(); 
int count = int.Parse(object.ToString()); 
System.Console.WriteLine( 
 "Row count: {0}", count); 
11 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ: SELECT (2) 
SqlCommand cmd = new SqlCommand( 
 "select * from Book", conn); 
using (SqlDataReader reader = cmd.ExecuteReader()) 
{ 
 while (reader.Read()) 
 { 
 for (int i = 0; i < reader.FieldCount; i++) 
 { 
 System.Console.Write( 
 reader.GetValue(i) + "\t"); 
 } 
 System.Console.WriteLine(); 
 } 
} 
12 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ: INSERT 
SqlCommand cmd = new SqlCommand( 
 "insert into Book(title, author)" + 
 "values ('Gone with the wind', 2)," + 
 "('Petit prince', 5)", conn); 
int count = cmd.ExecuteNonQuery(); 
System.Console.WriteLine( 
 "{0} rows inserted", count); 
13 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Ví dụ: UPDATE 
SqlCommand cmd = new SqlCommand( 
 "update Book" + 
 "set author=4" + 
 "where author=10", conn); 
int count = cmd.ExecuteNonQuery(); 
System.Console.WriteLine( 
 "{0} rows updateed", count); 
14 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Xử lý lỗi trong C# 
 C# dùng cơ chế xử lý lỗi bằng câu lệnh try…catch 
try { 
 // khối lệnh cần thực hiện 
} catch (ExpType exp) { 
 // xử lý lỗi 
} 
 Khi xảy ra lỗi, đoạn lệnh trong khối try sẽ dừng và nhảy tới phần 
xử lý lỗi trong khối catch 
 exp là đối tượng chứa thông tin về lỗi cần xử lý 
 Các đối tượng trong thư viện System.Data.SqlClient 
khi xảy ra lỗi sẽ tạo ra đối tượng lỗi có kiểu 
SqlException 
15 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Xử lý lỗi SQL trong C# (tiếp) 
 Việc xử lý lỗi SQL trong C# sẽ có dạng như sau: 
try { 
 // các câu lệnh với SQL... 
} catch (SqlException exp) { 
 // xử lý lỗi 
} 
 Ví dụ: 
try { 
 // các câu lệnh với SQL... 
} catch (SqlException exp) { 
 System.Console.WriteLine(exp.Message); 
} 
16 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
Bài tập 
1. Định nghĩa một quan hệ SinhVien, sau đó viết một 
chương trình C# nhập thông tin sinh viên, thêm 
vào CSDL và in ra ID của sinh viên vừa được thêm 
2. Viết chương trình C# nhập ID của một sinh viên và 
in ra thông tin của sinh viên đó 
3. Viết chương trình C# nhập tên của sinh viên và in 
ra thông tin những người có tên như đã nhập 
17 EE4509, EE6133 – HK2 2011/2012 
TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội 
            Các file đính kèm theo tài liệu này:
 08_mssql_c__1149.pdf 08_mssql_c__1149.pdf