Làm th? nào đ? k?t n?i v?i cơ s? d? li?u và ch?y m?t l?nh b?ng cách s? d?ng ADO.NET 2005 và Visual C# 2005 ho?c b?ng cách s? d?ng ADO.NET và Visual C#.NET
Bài vi?t t?ng bư?c này cho b?n th?y làm th? nào đ? s? d?ng ADO.NET 2005
ho?c ADO.NET đ? k?t n?i v?i cơ s? d? li?u và ch?y l?nh.
Yêu c?u
Các
danh sách sau đây v?ch ra đư?c đ? ngh? ph?n c?ng, ph?n m?m, m?ng
cơ s? h? t?ng, và gói d?ch v? mà b?n c?n:
Microsoft Windows Server 2003, Microsoft Windows 2000
Chuyên nghi?p, Windows 2000 Server, Windows 2000 Advanced Server, ho?c Microsoft
Máy ch? Windows NT 4.0
Microsoft Visual Studio 2005 ho?c Microsoft Visual Studio
.NET
Đi?u này
bài gi? đ?nh r?ng b?n đ? quen thu?c v?i các ch? đ? sau:
Cơ s? d? li?u thu?t ng?
C?u trúc Query Language (SQL)
Làm th? nào đ? ch?y m?t l?nh
L?nh đư?c ban hành đ?i v?i cơ s? d? li?u đ? có hành đ?ng ch?ng l?i
các c?a hàng d? li?u và bao g?m b?t k? tuyên b? r?ng có th? đư?c ban hành ch?ng l?i m?t cơ s? d? li?u.
B?n có th? s? d?ng các OleDbCommand ho?c các SqlCommand các l?p h?c đ? có đư?c m?t câu l?nh đ? lưu tr? d? li?u c?a b?n, và OleDbCommand có th? đư?c c? th? đ? lưu tr? d? li?u. Bài vi?t này ch?ng t? c? hai
các SqlClient l?p (k?t n?i v?i m?t máy tính đang ch?y Microsoft SQL
Máy ch?) và các OleDb l?p h?c (cho b?t k? cơ s? d? li?u có m?t tr?nh đi?u khi?n OLE DB ho?c ODBC
«««s?n) trong ADO.NET. Tuy nhiên, các m? thư?ng là như nhau cho
c? hai.
V?i ADO, b?n có th? phát hành l?nh thông qua các Ch? huy, các K?t n?i, ho?c các RecordSet đ?i tư?ng. Trong ADO.NET, ch? các Ch? huy các đ?i tư?ng)SqlCommand ho?c OleDbCommand) ch?y l?nh.
Đ? ch?y l?nh, h?y làm theo các bư?c sau:
Làm theo các bư?c sau đ? t?o ra m?t ?ng d?ng giao di?n đi?u khi?n m?i trong
Microsoft Visual C# 2005 ho?c trong Microsoft Visual C#.NET:
B?t đ?u Microsoft Visual Studio 2005 ho?c Microsoft Visual
Ph?ng thu.NET.
Trên các Tệp tr?nh đơn, đi?m đ?n M?i, sau đó b?m Dự án.
Trong các D? án m?i h?p tho?i h?p, b?m vào Visual C# các d? án dư?i Các lo?i d? án, sau đó b?m Giao di?n đi?u khi?n ?ng d?ng dư?i Khuôn mẫu.
Chú ý Trong Visual Studio 2005, nh?p vào Visual C# dư?i Các lo?i d? án trong các D? án m?i h?p tho?i, và sau đó nh?p vào Giao di?n đi?u khi?n ?ng d?ng dư?i Khuôn mẫu.
Đ?m b?o r?ng d? án c?a b?n có ch?a m?t tham chi?u đ?n các System.Data không gian tên, và thêm m?t tài li?u tham kh?o n?u nó không.
S? d?ng các b?ng cách s? d?ng tuyên b? v? s? Các vấn đề và System.Data không gian tên do đó b?n không c?n ph?i vư?t qua v?ng lo?i t? khai trong
nh?ng không gian tên sau trong m? c?a b?n. B?n c?ng có th? bao g?m System.Data.SqlClient ho?c System.Data.OleDb, tùy thu?c vào cái nào b?n đang s? d?ng.
using System;
using System.Data;
using System.Data.SqlClient;
Trư?c khi b?n có th? t?o m?t k?t n?i đ?n cơ s? d? li?u, b?n ph?i
có m?t k?t n?i chu?i. K?t n?i chu?i ch?a t?t c? các thông tin
b?n c?n thi?t l?p k?t n?i cơ s? d? li?u, bao g?m c? tên máy ch?,
tên cơ s? d? li?u, tên ngư?i dùng và m?t kh?u. Ví d?, sau đây
k?t n?i chu?i đi?m v?i m?t máy tính đ?a phương đang ch?y SQL
Máy ch?:
Đ?i v?i các k?t n?i OleDb:
Chú ý Ngư?i s? d?ng ID <uid>ph?i có quy?n thích h?p đ? th?c hi?n
các ho?t đ?ng trên cơ s? d? li?u.</uid>
B?ng cách s? d?ng này chu?i k?t n?i, t?o ra m?t m?i OleDbConnection ho?c SqlConnection đ?i tư?ng, và g?i c?a nó M? phương pháp thi?t l?p k?t n?i cơ s? d? li?u c?a b?n:
SqlConnection objConn = new SqlConnection(sConnectionString);
objConn.Open();
T?o ra m?t SqlCommand ho?c OleDbCommand đ?i tư?ng, và vư?t qua trong l?nh mà b?n mu?n ch?y và các
đ?i tư?ng k?t n?i b?n đ? t?o ? bư?c trư?c. Các m?u sau đây
M? đi trong tuyên b? CHÈN:
Sau khi b?n t?o các SqlCommand ho?c OleDbCommand đ?i tư?ng, b?n có th? g?i các ExecuteNonQuery phương pháp đ? ch?y l?nh mà nó đ?i di?n. ExecuteNonQuery đư?c thi?t k? cho các l?nh không tr? v? b?t k? k?t qu? (ch?ng h?n như
vi?c xoá, C?p Nh?t và thêm câu). N?u các báo cáo ch?y mà không c?n
ném ngo?i l? (xem đo?n m? sau), câu l?nh đ? đư?c th?c hi?n
thành công ch?ng l?i cơ s? d? li?u.
objCmd.ExecuteNonQuery();
Lưu d? án c?a b?n. Trên các G? l?i tr?nh đơn, nh?p vào B?t đ?u ch?y l?nh c?a b?n đ?i v?i cơ s? d? li?u.
Làm th? nào đ? s? d?ng tham s?
Khi b?n ch?y l?nh đ?i v?i cơ s? d? li?u (ví d? như C?p Nh?t, các
CHÈN, và xoá b? báo cáo ho?c các cu?c g?i đ?n th? t?c đư?c lưu tr?), nh?ng
l?nh thư?ng xuyên đư?c vec. Đi?u này cho phép các l?nh đư?c t?o ra
m?t trong nh?ng th?i gian nhưng th?c hi?n nhi?u l?n v?i các giá tr? khác nhau đư?c chèn vào
thay v? các tham s?. Xem xét tuyên b? DELETE tương ?ng v?i các
CHÈN n?i dung đư?c s? d?ng trong ph?n trư?c:
string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id"
Tên tham s? ("@ emp_id") trong tuyên b? này DELETE đ?i di?n cho m?t
tham s? hơn b?n có th? thay th? v?i các giá tr? khác nhau m?i khi b?n ch?y các
b? ch? huy.
S? d?ng tham s? v?i l?nh c?a b?n, h?y làm theo các bư?c sau:
T?o c?a b?n OleDbConnection ho?c SqlConnection đ?i tư?ng, như b?n đ? làm trong nh?ng "Cách
ch?y l?nh"ph?n.
Thay th? các giá tr? v?i bài (ví d?, "@ emp_id" ho?c
"@ fname") đ? các văn b?n ch? huy c?a b?n s? d?ng tham s?. Xem tuyên b? DELETE
trư?c khi các bư?c này cho m?t ví d?.
T?o c?a b?n OleDbCommand ho?c SqlCommand đ?i tư?ng, và vư?t qua trong các đ?i tư?ng k?t n?i mà b?n t?o ra trong các
bư?c đ?u tiên và ch? huy văn b?n có ch?a các tham s?
bài.
Cho m?i tham s?, thêm m?t đ?i tư?ng tham s? cho l?nh
b? sưu t?p các tham s? c?a đ?i tư?ng. Cho m?i tham s?, b?n ph?i ch? đ?nh m?t tên và
ki?u d? li?u.
Th? t?c đư?c lưu tr? có th? có các tham s? tr? v? giá tr?
và đ?u ra các thông s?. B?n c?ng ph?i thi?t l?p m?t giá tr? cho m?i tham s? đ?u vào
trư?c khi b?n có th? ch?y truy v?n:
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:306636