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

ID c?a bài: 306636 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

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:
  1. 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:
    1. B?t đ?u Microsoft Visual Studio 2005 ho?c Microsoft Visual Ph?ng thu.NET.
    2. Trên các Tệp tr?nh đơn, đi?m đ?n M?i, sau đó b?m Dự án.
    3. 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.
  2. Đ?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.
  3. S? d?ng các b?ng cách s? d?ng tuyên b? v? s? Các vấn đề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;
    					
  4. 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>
    Provider=SQLOLEDB.1;User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    Đ?i v?i các k?t n?i SqlClient:
    User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    Chú ý N?u b?n c?n thêm tr? giúp xác đ?nh các k?t n?i chu?i cho cơ s? d? li?u c?a b?n, t?m ki?m cho "ConnectionString" trên Microsoft Developer Network (MSDN) Thư vi?n:
    http://MSDN.Microsoft.com/en-US/Default.aspx
  5. Visual Studio t?o ra m?t l?p h?c t?nh và m?t s?n ph?m nào Main() th? t?c. Khai báo m?t bi?n chu?i, và lưu tr? nhaán k?t n?i chu?i cho cơ s? d? li?u trong th? t?c này.

    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>
    class Class1
    {
    	static void Main(string[] args)
    	{
    		string sConnectionString = 
    "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
    	}
    }
    					
  6. 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();
    					
  7. 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:
    string sSQL = "INSERT INTO Employee " + 
      "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " + 
      "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')";
    SqlCommand objCmd = new SqlCommand(sSQL,objConn);
    					
  8. 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();
    					
  9. 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:
  1. 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.
  2. 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?.
  3. 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.
  4. 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.
    objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
    					
  5. 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:
    objCmd.Parameters["@emp_id"].Value = "MSD12923F";
    					
  6. Ch?y truy v?n như sau:
    try 
    {
    	objCmd.ExecuteNonQuery();
    }
    catch (System.Exception e) 
    {
    	Console.WriteLine(e.Message);
    }
    Console.WriteLine("Record Deleted");
    					

Danh sách m? hoàn ch?nh

Chú ý B?n ph?i thay đ?i ID ngư?i s? d?ng =<uid> v?i các giá tr? đúng trư?c khi b?n ch?y m? này. H?y ch?c ch?n r?ng <uid>có quy?n truy c?p thích h?p đ? th?c hi?n thao tác này trên cơ s? d? li?u.</uid> </uid>
using System;
using System.Data;
using System.Data.SqlClient;

    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
	static void Main(string[] args)
	{
		AddRecord();
		RemoveRecord();
		Pause();
	}

	static void Pause()
	{
		Console.WriteLine("Press Enter To Continue....");
		Console.ReadLine();
	}

	static void AddRecord()
	{
		string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
		SqlConnection objConn = new SqlConnection(sConnectionString);
		objConn.Open();
		string sSQL = "INSERT INTO Employee " + 
		  "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " + 
	          "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')";
		SqlCommand objCmd = new SqlCommand(sSQL,objConn);
		try 
		{
			objCmd.ExecuteNonQuery();
			}
		catch (System.Exception e) 
		{
			Console.WriteLine(e.Message);
		}
		Console.WriteLine("Record Added");
	}

	static void RemoveRecord()
	{
		string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
		SqlConnection objConn = new SqlConnection(sConnectionString);
		objConn.Open();
		string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id";
		SqlCommand objCmd = new SqlCommand(sSQL,objConn);
		objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
		objCmd.Parameters["@emp_id"].Value = "MSD12923F";
		try 
		{
			objCmd.ExecuteNonQuery();
		}
		catch (System.Exception e) 
		{
			Console.WriteLine(e.Message);
		}
		Console.WriteLine("Record Deleted");
	}
} 
				

THAM KH?O

Đ? bi?t thêm chi ti?t v? làm th? nào đ? s? d?ng ADO.NET, cơ s? d? li?u l?nh và các th? t?c đư?c lưu tr?, truy c?p vào trang Web Microsoft sau đây:
SQL Server 2000 đư?c lưu tr? th? t?c
http://msdn2.Microsoft.com/en-US/Library/aa214299 (SQL.80) .aspx

"L?n vào truy c?p d? li?u" MSDN Voices c?t
http://msdn2.Microsoft.com/en-US/Library/ms810295.aspx

ADO.NET cho các l?p tr?nh viên ADO
http://msdn2.Microsoft.com/en-US/Library/ms973217.aspx

MSDN tr?c tuy?n.Trung tâm nhà phát tri?n NET
http://MSDN.Microsoft.com/net
Đ? bi?t thêm chi ti?t, xem cu?n sách sau đây:
Sharp, John và Jon Jagger. Microsoft Visual C#.NET t?ng bư?c. Microsoft Press, 2003.
Đ? bi?t thêm chi ti?t, xem đào t?o Microsoft sau & Ch?ng nh?n khóa h?c:
2389 L?p tr?nh v?i ADO.NET
http://www.Microsoft.com/Learning/syllabi/en-US/2389Bfinal.mspx

Thu?c tính

ID c?a bài: 306636 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
T? khóa: 
kbhowtomaster kbsqlclient kbsystemdata kbmt KB306636 KbMtvi
Máy d?ch
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

Cung cấp Phản hồi