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 |
Chia sẻ: vietpd | Lượt xem: 1862 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Bài giảng SQL Server & 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