วิธีการเชื่อมต่อกับฐานข้อมูล และการเรียกใช้คำสั่ง โดยใช้ ADONET 2005 และ Visual C# 2005 หรือ โดยใช้ ADOสุทธิและ Visual C#สุทธิ

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 306636 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความทีละขั้นตอนนี้แสดงวิธีการใช้ ADONET 2005 หรือ ADOสุทธิ เพื่อเชื่อมต่อกับฐานข้อมูล และ การเรียกใช้คำสั่ง

ความต้องการ

ที่ แนะนำฮาร์ดแวร์ ซอฟต์แวร์ เครือข่ายให้คำอธิบายเกี่ยวกับรายการต่อไปนี้ โครงสร้างพื้นฐาน และ service pack ที่คุณต้องการ:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 ขั้นอาชีพ Windows 2000 Server, Windows 2000 สูง Server หรือ Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 หรือ Microsoft Visual Studio .สุทธิ
นี้ บทความสันนิษฐานว่า คุณคุ้นเคยกับหัวข้อต่อไปนี้:
  • คำศัพท์ของฐานข้อมูล
  • โครงสร้าง Query Language (SQL)

วิธีการเรียกใช้คำสั่ง

คำสั่งมีการออกใช้สำหรับฐานข้อมูลที่มีการดำเนินการต่อ เก็บข้อมูลและ การรวมคำสั่งใด ๆ ที่สามารถออกจากฐานข้อมูล คุณสามารถใช้การOleDbCommandหรือSqlCommandระดับชั้นเพื่อรับคำสั่งในการจัดเก็บข้อมูลของคุณ และOleDbCommandสามารถระบุการจัดเก็บข้อมูล บทความนี้อธิบายเกี่ยวกับทั้งสองอย่าง ที่SqlClientคลาส (การเชื่อมต่อกับคอมพิวเตอร์ที่กำลังเรียกใช้ Microsoft SQL เซิร์ฟเวอร์) และการOleDbคลาส (สำหรับฐานข้อมูลใด ๆ ที่มีโปรแกรมควบคุม ODBC หรือการ OLE DB ที่ มี) ภายในของ ADOสุทธิ อย่างไรก็ตาม รหัสนั้นโดยทั่วไปจะเหมือนกันสำหรับ ทั้งสอง

ด้วย ADO คุณสามารถออกคำสั่งผ่านทางการคำสั่งการการเชื่อมต่อหรือชุดระเบียนวัตถุ ใน ADOสุทธิ เฉพาะคำสั่ง(วัตถุSqlCommandหรือOleDbCommand) เรียกใช้คำสั่ง

เมื่อต้องการเรียกใช้คำสั่ง ให้ทำตามขั้นตอนเหล่านี้:
  1. ทำตามขั้นตอนเหล่านี้เพื่อสร้างโปรแกรมประยุกต์คอนโซลใหม่ใน Microsoft Visual C# 2005 หรือ ใน Microsoft Visual C#NET:
    1. เริ่ม Microsoft Visual Studio 2005 หรือ Microsoft Visual Studioสุทธิ
    2. บนเครื่องแฟ้มเมนู การชี้ไปที่ใหม่แล้ว คลิกโครงการ.
    3. ในการโครงการใหม่กล่องโต้ตอบ คลิกVisual C# โครงการภายใต้ชนิดโครงการแล้ว คลิกแอพลิเคชันของคอนโซลภายใต้แม่แบบ.

      หมายเหตุใน Visual Studio 2005 คลิกVisual C#ภายใต้ชนิดโครงการในการโครงการใหม่กล่องโต้ตอบ จากนั้นคลิกแอพลิเคชันของคอนโซลภายใต้แม่แบบ.
  2. ตรวจสอบให้แน่ใจว่า โครงการของคุณประกอบด้วยการอ้างอิงไปยังSystem.Datanamespace และเพิ่มการอ้างอิงได้หากไม่
  3. ใช้การการใช้คำสั่งบนเครื่องระบบและSystem.Datanamespaces เพื่อให้คุณไม่ได้รับการประกาศใน namespaces เหล่านั้นในภายหลังในรหัสของคุณ นอกจากนี้คุณยังสามารถรวมSystem.Data.SqlClientหรือSystem.Data.OleDbขึ้นอยู่กับที่คุณใช้อยู่
    using System;
    using System.Data;
    using System.Data.SqlClient;
    					
  4. ก่อนที่คุณสามารถสร้างการเชื่อมต่อกับฐานข้อมูล คุณต้อง มีสายอักขระการเชื่อมต่อ สายอักขระการเชื่อมต่อข้อมูลทั้งหมดประกอบด้วย ว่า คุณจำเป็นต้องสร้างการเชื่อมต่อฐานข้อมูล รวมทั้งชื่อของเซิร์ฟเวอร์ ชื่อฐานข้อมูล ID ผู้ใช้ และรหัสผ่าน ดังตัวอย่างเช่น นี้ จุดสายอักขระการเชื่อมต่อกับคอมพิวเตอร์ที่กำลังเรียกใช้ SQL เซิร์ฟเวอร์:

    สำหรับการเชื่อมต่อ OleDb:

    หมายเหตุID ผู้ใช้ <uid>ต้องมีสิทธิ์ที่เหมาะสมเพื่อดำเนินการ ดำเนินการเหล่านี้ในฐานข้อมูล</uid>
    Provider=SQLOLEDB.1;User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    สำหรับการเชื่อมต่อ SqlClient:
    User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    หมายเหตุถ้าคุณต้องการให้ความช่วยเหลือเพิ่มเติมที่กำลังตรวจสอบการเชื่อมต่อสายสำหรับ ฐานข้อมูล การค้นหาสำหรับ "ConnectionString" ที่อยู่บนเครือข่ายสำหรับนักพัฒนา Microsoft (MSDN) ไลบรารีที่:
    http://msdn.microsoft.com/en-us/default.aspx
  5. Visual Studio สร้างคลาสที่คงที่และว่างMain()กระบวนการ ประกาศตัวแปรสตริง และเก็บที่เหมาะสม สายอักขระการเชื่อมต่อฐานข้อมูลของคุณในขั้นตอนนี้

    หมายเหตุID ผู้ใช้ <uid>ต้องมีสิทธิ์ที่เหมาะสมเพื่อดำเนินการ ดำเนินการเหล่านี้ในฐานข้อมูล</uid>
    class Class1
    {
    	static void Main(string[] args)
    	{
    		string sConnectionString = 
    "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
    	}
    }
    					
  6. โดยใช้สายอักขระการเชื่อมต่อนี้ สร้างขึ้นใหม่OleDbConnectionหรือSqlConnectionวัตถุ และโทรศัพท์ของเปิดวิธีสร้างการเชื่อมต่อกับฐานข้อมูลของคุณ:
    SqlConnection objConn = new SqlConnection(sConnectionString);
    objConn.Open();
    					
  7. สร้างตัวSqlCommandหรือOleDbCommandวัตถุ และส่งผ่านในคำสั่งที่คุณต้องการเรียกใช้ และการ วัตถุการเชื่อมต่อที่คุณสร้างในขั้นตอนก่อนหน้านี้ ตัวอย่างต่อไปนี้ รหัสผ่านในคำสั่ง INSERT:
    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. หลังจากที่คุณสร้างนั้นSqlCommandหรือOleDbCommandวัตถุ คุณสามารถติดต่อได้ExecuteNonQueryวิธีการเรียกใช้คำสั่งที่แสดงExecuteNonQueryออกแบบมาสำหรับคำสั่งที่ไม่ได้ส่งกลับผลลัพธ์ใด ๆ (เช่น การลบ UPDATE และแทรกคำ) ถ้าคำสั่งรันโดยไม่มี ทิ้งข้อยกเว้น (ดูรหัสต่อไปนี้), คำสั่งมีปฏิบัติการ เทียบกับฐานข้อมูลสำเร็จแล้ว
    objCmd.ExecuteNonQuery();
    					
  9. บันทึกโครงการของคุณ บนเครื่องตรวจแก้จุดบกพร่องเมนู คลิกเริ่มการทำงานเมื่อต้องการเรียกใช้คำสั่งของคุณกับฐานข้อมูล

วิธีการใช้พารามิเตอร์

เมื่อคุณเรียกใช้คำสั่งกับฐานข้อมูล (เช่นการปรับปรุง แทรก และคำสั่งลบ หรือเรียกใช้กระบวนงานที่เก็บไว้), เหล่านี้ บ่อยสพารามิเตอร์การคำสั่ง ซึ่งทำให้คำสั่งที่จะสร้าง หนึ่งครั้งแต่ปฏิบัติการหลายครั้งมีค่าแตกต่างกันที่จะถูกแทรก แทนที่เป็นของพารามิเตอร์ พิจารณาคำชี้แจงลบที่สอดคล้องกันเพื่อ ใส่คำสั่งที่ใช้ในส่วนก่อนหน้า:
string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id"
				
ชื่อพารามิเตอร์ ("@ emp_id") ในคำสั่งลบนี้แทน พารามิเตอร์ที่ไม่ใช่คุณสามารถแทนที่ ด้วยค่าที่แตกต่างกันแต่ละครั้งที่คุณเรียกใช้การ คำสั่ง

การใช้พารามิเตอร์ในคำสั่งของคุณ ให้ทำตามขั้นตอนเหล่านี้:
  1. สร้างของคุณOleDbConnectionหรือSqlConnectionวัตถุ ในขณะที่คุณใช้ในการ "วิธีการ เรียกใช้คำสั่ง"ส่วน
  2. แทนค่า ด้วยตัวยึด (ตัวอย่างเช่น "@ emp_id" หรือ "@ fname") เพื่อให้ข้อความคำสั่งของคุณใช้พารามิเตอร์ ดูคำชี้แจงการลบ ก่อนขั้นตอนเหล่านี้สำหรับตัวอย่าง
  3. สร้างของคุณOleDbCommandหรือSqlCommandวัตถุ และผ่านในการเชื่อมต่อวัตถุที่คุณสร้างไว้ในเครื่อง ขั้นตอนแรกและข้อความคำสั่งที่ประกอบด้วยพารามิเตอร์ ตัวยึด
  4. สำหรับแต่ละพารามิเตอร์ เพิ่มวัตถุที่มีพารามิเตอร์คำสั่ง ชุดเก็บรวบรวมพารามิเตอร์ของวัตถุ สำหรับแต่ละพารามิเตอร์ คุณต้องระบุชื่อ และ ชนิดของข้อมูล
    objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
    					
  5. กระบวนงานที่เก็บไว้สามารถมีพารามิเตอร์ที่ส่งกลับค่า และผลลัพธ์ของพารามิเตอร์ นอกจากนี้คุณยังต้องตั้งค่าสำหรับแต่ละพารามิเตอร์ค่านำเข้า ก่อนที่คุณสามารถเรียกใช้แบบสอบถาม:
    objCmd.Parameters["@emp_id"].Value = "MSD12923F";
    					
  6. รันการสอบถามดังนี้:
    try 
    {
    	objCmd.ExecuteNonQuery();
    }
    catch (System.Exception e) 
    {
    	Console.WriteLine(e.Message);
    }
    Console.WriteLine("Record Deleted");
    					

แสดงรายการรหัสเสร็จสมบูรณ์

หมายเหตุคุณต้องเปลี่ยน ID ผู้ใช้ = <uid>กับค่าที่ถูกต้องก่อน คุณเรียกใช้โค้ดนี้ ตรวจสอบให้แน่ใจว่า <uid>ที่มีสิทธิ์ที่เหมาะสม เมื่อต้องการดำเนินการนี้กับฐานข้อมูล</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");
	}
} 
				

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้ ADOฐานข้อมูล สุทธิ คำสั่ง และกระบวนงานที่เก็บ เยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:
กระบวนงาน 2000 ที่เก็บไว้ของเซิร์ฟเวอร์ SQL
http://msdn2.microsoft.com/en-us/library/aa214299 (SQL.80) .aspx

"Diving ลงในการเข้าถึงข้อมูลเสียงของ MSDNคอลัมน์
http://msdn2.microsoft.com/en-us/library/ms810295.aspx

ADOสุทธิสำหรับโปรแกรมเมอร์ ADO
http://msdn2.microsoft.com/en-us/library/ms973217.aspx

MSDN แบบออนไลน์ศูนย์นักพัฒนาสุทธิ
http://msdn.microsoft.com/net
สำหรับข้อมูลเพิ่มเติม ให้ดูสมุดรายชื่อต่อไปนี้:
คม การ John และ Jon JaggerMicrosoft Visual C#สุทธิทีละขั้น. Microsoft Press, 2003
ดูข้อมูลเพิ่มเติม การฝึกอบรมดังต่อไปนี้ของ Microsoft & หลักสูตรการออกใบรับรอง:
2389 การเขียนโปรแกรม ด้วย ADOสุทธิ
http://www.microsoft.com/learning/syllabi/en-us/2389Bfinal.mspx

คุณสมบัติ

หมายเลขบทความ (Article ID): 306636 - รีวิวครั้งสุดท้าย: 28 มกราคม 2554 - Revision: 14.0
ใช้กับ
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
Keywords: 
kbhowtomaster kbsqlclient kbsystemdata kbmt KB306636 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:306636

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com