HOW TO: สร้าง และใช้ชุดข้อมูลที่พิมพ์ โดยใช้ Visual c# .NET

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

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

สรุป

บทความนี้แสดงวิธีการสร้าง และใช้เป็นตัวพิมพ์ชุดข้อมูลในโปรแกรมขนาดเล็กเว็บประยุกต์ พิมพ์DataSetsซึ่งสืบทอดจากนั้นชุดข้อมูลคลาส สร้างสมาชิก first-class ของคำชุดข้อมูลของDataTablesและDataColumnsส่งผลประโยชน์มากมายที่มาพร้อมกับการใช้พิมพ์อย่างแน่นหนา

ความต้องการ

รายการต่อไปนี้อธิบายฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย ทักษะ และทราบ และ service pack ที่คุณต้องจำเป็นต้องทำตามขั้นตอนเหล่านี้:
  • Microsoft SQL Server 6.5 (หรือรุ่นที่ใหม่กว่า) กับฐานข้อมูล Northwind
ทักษะก่อนหน้านี้ที่จำเป็นต้องใช้:
  • familiarity ทั่วไปกับ Microsoft SQL Server
  • familiarity ทั่วไปกับ Microsoft Visual Studio .NET
  • familiarity ทั่วไปกับ Microsoft ADO.NET
  • familiarity ทั่วไปเกี่ยวกับการควบคุมเว็บ.NET Microsoft

DataSets ตัวพิมพ์

ทำตามขั้นตอนเหล่านี้เพื่อสร้างโปรแกรมประยุกต์เว็บขนาดเล็ก โดยใช้ Visual Studio .NET โปรแกรมประยุกต์เว็บที่ใช้เป็นตัวพิมพ์ชุดข้อมูลเมื่อต้องการแสดงผลของการสอบถาม SQL improvised ในฐานข้อมูล Northwind
  1. เริ่ม Visual Studio .NET
  2. สร้างโครงการแอพลิเคชันเว็บใหม่ชื่อtdsใน Visual c# .NET
  3. ตรวจสอบให้แน่ใจว่า มีแสดง Explorer โซลูชัน หากไม่ได้แสดงการ Explorer โซลูชัน กด CTRL + ALT + L
  4. ตรวจสอบให้แน่ใจว่า แฟ้ม WebForm1.aspx เปิดในหน้าต่างตัวแก้ไข ถ้าแฟ้มไม่ได้เปิด คลิกสองครั้งWebForm1.aspxใน Explorer โซลูชันเพื่อเปิดแฟ้ม
  5. ภายใต้หน้าต่างตัวแก้ไข คลิกออกแบบเมื่อต้องการสลับไปยังมุมมองออกแบบ
  6. เมื่อต้องการเปิดกล่องเครื่องมือ ให้กด CTRL + ALT + X ในกล่องเครื่องมือ คลิกฟอร์มเว็บ. เลือก และลากต่อไปนี้ไปมุมบนซ้ายของหน้า: สองแถวแต่ละป้ายผนึกตาม ด้วยกล่องข้อความ (ที่อยู่ทางด้านขวาของแต่ละป้ายผนึก) ภายใต้เหล่านี้ เพิ่มคำDataGridด้วยวิธีเดียวกัน
  7. คลิกป้ายชื่อที่ด้านบน กด F4 เพื่อแสดงหน้าต่างคุณสมบัติ การเปลี่ยนแปลงนั้นคุณสมบัติของข้อความเมื่อต้องการผลิตภัณฑ์. คลิกป้ายชื่ออื่น และเปลี่ยนแปลงแล้ว ของคุณสมบัติของข้อความเมื่อต้องการประเภท:.
  8. เมื่อต้องการเพิ่มใหม่ชุดข้อมูลโครงการ กด CTRL + SHIFT + A และจากนั้น คลิกชุดข้อมูลในรายการของต้นแบบ ชื่อนี้ชุดข้อมูลต่อไปนี้:dsProducts.xsd. โปรดสังเกตว่า แฟ้มดังกล่าวจริงมีเค้าร่าง XML คลิกตกลง. ขณะนี้คุณเห็นหน้าสีเหลืองซีดในหน้าต่างตัวแก้ไข
  9. เมื่อต้องการสร้างการพิมพ์ชุดข้อมูลกด CTRL + ALT + S เพื่อเปิด Explorer เซิร์ฟเวอร์
  10. คลิกเซิร์ฟเวอร์คลิกชื่อคอมพิวเตอร์คลิกSQLServersคลิกServer Nameคลิกnorthwindแล้ว คลิกมุมมอง.
  11. เลือกมุมมอง Northwind SQL Serverรายการ alphabetical ของผลิตภัณฑ์แล้ว ลากมุมมองการสีเหลืองซีดชุดข้อมูลหน้า แสดงการแสดงผลของชุดผลลัพธ์ที่ถูกสร้างขึ้น โดยมุมมองปรากฏบนหน้า เมื่อต้องการดู XML ที่แท้จริงสำหรับแฟ้มแบบแผน คลิกการXMLปุ่มภายใต้หน้าต่างตัวแก้ไข
  12. แบบแผนการใช้บนวัตถุเซิร์ฟเวอร์ SQL มีอยู่ เมื่อต้องการสร้าง และกรอกรายละเอียดเป็นตัวพิมพ์ชุดข้อมูลครั้งแรก คุณต้องสร้างคลาสที่แมปไปเค้าร่าง คลิกขวาที่มุมมองออกแบบ และจากนั้น ตรวจสอบที่จะสร้างชุดข้อมูลเลือกตัวเลือก ถ้าคุณไม่มีเลือก เลือกนั้น กด CTRL + S เพื่อบันทึกการแบบแผน และสร้างคลา
  13. เมื่อต้องการดูใหม่พิมพ์ชุดข้อมูลคลาส คลิกแสดงแฟ้มทั้งหมดใน Explorer โซลูชัน
  14. ขยายแผนภูมิอยู่ถัดจากdsProducts.xsd. คุณเห็นแฟ้มแบบ dsProducts.vb ซึ่งประกอบด้วยการแมปคลาใหม่กับ Schema อยู่ คุณยังเห็น dsProducts.xsx แฟ้ม ซึ่งใช้สำหรับการติดตามการเปลี่ยนแปลงแฟ้ม
  15. เมื่อต้องการเขียนโค้ดเพื่อแสดงการพิมพ์ชุดข้อมูลคลิกสองครั้งบนแบบฟอร์มเว็บ (ไม่ใช่บนตัวควบคุมเว็บ) โดยตรง เว็บฟอร์ม codebehind ปรากฏ และจุดแทรกที่อยู่ภายในนั้นPage_Loadเหตุการณ์
  16. เมื่อต้องการรวมระดับชั้นที่อยู่ใน System.Data.SqlClient namespace เพิ่มต่อไปนี้การใช้คำสั่งที่ด้านบนของ codebehind:
    using System.Data.SqlClient;
    					
    หมายเหตุ:: namespaces การอื่น ๆ ที่คุณจำเป็นต้องมีสำหรับโปรแกรมประยุกต์เว็บนี้เล็ก ถูกอ้างถึงในโครงการโดยอัตโนมัติเมื่อคุณสร้างโปรแกรมประยุกต์เว็บใน Visual Studio .NET

  17. ในการPage_Loadกระบวนงานเหตุการณ์ สร้างวัตถุการเชื่อมต่อ โดยการส่งผ่านสายอักขระการเชื่อมต่อกับตัวสร้างเริ่มต้นของการSqlConnectionคลาส:
    SqlConnection cn = new SqlConnection("server=myserver;uid=myuid;pwd=mypassword;database=northwind");
    					
  18. สร้างวัตถุ SqlCommand ที่แล้วได้ถูกส่งผ่านไปยังวัตถุ SqlDataAdapter ส่งต่อเป็นคำสั่ง SQL improvised และวัตถุการเชื่อมต่อใหม่เพื่อสร้าง SqlCommand ตั้งค่าเดิมCommandTextคุณสมบัติของวัตถุ SqlCommand ใหม่ นอกจากนี้คุณสามารถส่งชื่อของกระบวนงานที่เก็บไว้
    SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
    					
  19. สร้างอินสแตนซ์ของวัตถุ SqlDataAdapter การส่งผ่านวัตถุ SqlCommand ใหม่ไปที่สร้าง:
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    					
  20. ขณะนี้ คุณสามารถสร้างวัตถุที่จำเป็นต้องเชื่อมต่อกับฐานข้อมูล และส่งค่าข้อมูล ต่อไปนี้มีรหัสสำหรับการพิมพ์ชุดข้อมูล. หมายเหตุที่อินสแตนซ์ของการdsProductsมีสร้างคลา: คลาสที่แมปกับ dsProducts แบบแผน และการสืบทอดจากนั้นชุดข้อมูลคลา ไม่ทั่วไปชุดข้อมูลคลาสของตัวเอง
    dsProducts tds = new dsProducts();
    					
  21. เรียกเติมวิธีการ SqlDataAdapter การส่งผ่านในการพิมพ์ชุดข้อมูลวัตถุและชุดข้อมูลของพิมพ์DataTable TableNameคุณสมบัติ:
    da.Fill(tds, tds.Tables[0].TableName);
    					
  22. การตั้งค่านี้ข้อความคุณสมบัติของตัวควบคุมกล่องข้อความไปยังคอลัมน์ขอพิมพ์ในการพิมพ์ชุดข้อมูลของDataTableใช้รูปแบบต่อไปนี้:
    dsProducts.DataTableName[RowIndex].ColumnName
    						
    สำหรับโปรแกรมประยุกต์นี้ตัวอย่าง RowIndex เป็นฮาร์ด-coded ไป 5:
    TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;
    TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName; 
    						
    เนื่องจากการแถวคอลเลกชันเป็น zero-based เมื่อมีการระบุหน้า หมายเหตุที่ควบคุมกล่องข้อความแสดงชื่อของผลิตภัณฑ์และประเภทของสินค้าในแถว sixth ของDataGrid.
  23. เมื่อต้องการแสดงผลลัพธ์ในทั้งหมดDataGridการตั้งค่านี้แหล่งข้อมูลพิมพ์คุณสมบัติของ DataGrid ไปใหม่ชุดข้อมูลและเรียกใช้DataBind():
    DataGrid1.DataSource = tds;
    DataGrid1.DataBind();
    					

รหัส (WebForm1.aspx) ที่รายการให้เสร็จสมบูรณ์

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="TDS.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
	<title>WebForm1</title>
	<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
	<meta name="CODE_LANGUAGE" Content="C#">
	<meta name="vs_defaultClientScript" content="JavaScript">
	<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
	<form id="Form1" method="post" runat="server">
		<asp:Label id="Label1"  runat="server" >Label</asp:Label>
		<asp:DataGrid id="DataGrid1"  runat="server" ></asp:DataGrid>
		<asp:TextBox id="TextBox2"  runat="server"></asp:TextBox>
		<asp:TextBox id="TextBox1"  runat="server"></asp:TextBox>
		<asp:Label id="Label2"  runat="server" >Label</asp:Label>
	</form>
</body>
</HTML>
				

รหัส (WebForm1.aspx.cs) ที่รายการให้เสร็จสมบูรณ์

using System.Data.SqlClient;

namespace TDS
{
  /// <summary>
  /// Summary description for WebForm1.
  /// </summary>
  public class WebForm1 : System.Web.UI.Page
  {
    protected System.Web.UI.WebControls.Label Label1;
    protected System.Web.UI.WebControls.Label Label2;
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.WebControls.TextBox TextBox2;
    protected System.Web.UI.WebControls.DataGrid DataGrid1;
	
    private void Page_Load(object sender, System.EventArgs e) 
    {
	SqlConnection cn = new SqlConnection("server=localhost;uid=sa;pwd=abcd;database=northwind");
	SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
	SqlDataAdapter da = new SqlDataAdapter(cmd);
	dsProducts tds = new dsProducts();

	da.Fill(tds, tds.Tables[0].TableName);
	TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;
	TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName; 

         DataGrid1.DataSource = tds;
	DataGrid1.DataBind();

    }

    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
	// 
	// CODEGEN: This call is required by the ASP.NET Web Form Designer.
	// 
	InitializeComponent();
	base.OnInit(e);
    }
		
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {    
	this.TextBox1.TextChanged += new System.EventHandler(this.TextBox1_TextChanged);
	this.Load += new System.EventHandler(this.Page_Load);

    }
    #endregion
  }
}

				

การตรวจสอบ

กด F5 เพื่อเรียกใช้แอพลิเคชันเว็บ เบราว์เซอร์ที่แสดง "ของ Uncle Bob Dried Organic Pears" ในการผลิตภัณฑ์กล่องข้อความและ "ผลิต" ในการประเภท:กล่องข้อความ DataGrid ที่ถูกป้อน ด้วยข้อมูลผลิตภัณฑ์ที่ปรากฏอยู่ใต้กล่องข้อความ

การแก้ไขปัญหา

  • ทั่วไปDataSetsไม่ต้องการให้คุณผ่านการTableNameเมื่อคุณเรียกใช้การเติมวิธีการ พิมพ์DataSetsอย่างไรก็ตาม ต้องนี้ ถึงแม้ว่าคุณเข้าถึงชุดข้อมูลของตาราง:คอลเลกชัน โดยดัชนีแทนTableName. ความล้มเหลวในการส่งต่อการพิมพ์ชุดข้อมูลของTableNamethrows ข้อผิดพลาด "ไม่มีแถวที่ตำแหน่ง 0" ขณะใช้งานจริง ข้อกำหนดนี้การพิมพ์DataSetsนอกจากนี้หมายความว่าคุณไม่สามารถเปลี่ยนค่าของคุณเองTableNameแต่คุณต้องส่งถูกอ้างถึงในการพิมพ์ชุดข้อมูลคลา ซึ่งมีการเข้าถึงในรหัสก่อนหน้านี้
  • เปลี่ยนแปลงด้วยตนเองที่คุณทำเค้าร่างที่ถูกสร้างขึ้น โดย Visual Studio .NET จะแทนที่หากคุณเปลี่ยนแปลงวัตถุในฐานข้อมูลที่คุณใช้ในการสร้างแบบแผนการเริ่มต้น และพิมพ์ชุดข้อมูลคลาส และลากอีกมุมมองออกแบบของแบบแผน มี preferable โดยทั่วไปเพื่อทำการเปลี่ยนแปลงที่คุณไปที่ระดับที่ Microsoft SQL Server และใน การสร้างใหม่พิมพ์ชุดข้อมูลนอกเหนือจากการเปลี่ยนแบบแผน resultant

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับข้อความเป็นตัวพิมพ์ชุดข้อมูลดูเว็บไซต์ต่อไปนี้ของ Microsoft:
.aspx http://msdn2.microsoft.com/en-us/library/esbykkzb (vs.71)


คุณสมบัติ

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

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

 

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