방법: 만들기 및 Visual C# .NET을 사용하여 형식화된 데이터 집합 사용

기술 자료 번역 기술 자료 번역
기술 자료: 320714 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 만들고 형식화된 DataSet 작은 웹 응용 프로그램에서 사용하는 방법을 보여 줍니다. 어떤 DataSet 클래스에서 상속되는 DataSet, 형식화된 DataSetDataTableDataColumns 강력한 입력을 사용하여 제공되는 많은 이점을 응답하지, 최고급 멤버를 만듭니다.

요구 사항

다음 항목은 권장되는 하드웨어, 소프트웨어, 네트워크 인프라, 기술 및 지식 및 이 단계를 완료하려면 할 서비스 팩 설명합니다.
  • Microsoft SQL Server 6.5 또는 그 이상 Northwind 데이터베이스
필요한 기술 이전:
  • Microsoft SQL Server 일반 지식
  • Visual Studio .NET 일반 지식
  • Microsoft ADO.NET 일반 지식
  • Microsoft .NET 웹 컨트롤을 일반 지식

형식화된 데이터 집합

Visual Studio .NET을 사용하여 소규모 웹 응용 프로그램을 만들려면 다음과 같이 하십시오. 웹 응용 프로그램에 형식화된 DataSet Northwind 데이터베이스의 임시 SQL 쿼리 결과를 표시하는 예제입니다.
  1. Visual Studio .NET 시작하십시오.
  2. Visual C# .NET을 TDS 라는 새 웹 응용 프로그램 프로젝트를 만듭니다.
  3. 솔루션 탐색기에 표시되어 있는지 확인하십시오. 솔루션 탐색기에 표시되지 않으면 Ctrl + Alt + L을 누릅니다.
  4. WebForm1.aspx 파일을 편집기 창에 열려 있어야 합니다. 파일이 열려 있지 않은 경우 파일을 열려면 솔루션 탐색기에서 WebForm1.aspx 를 두 번 클릭하십시오.
  5. 편집기 창의 디자인 보기로 전환하려면 디자인 클릭하십시오.
  6. 도구 상자를 열려면 Ctrl + Alt + X를 누릅니다. 도구 상자에서 Web Forms 를 클릭하십시오. 다음 페이지의 왼쪽 위 모서리를 끌어 놓을: 레이블 (각 레이블의 오른쪽에 배치) 텍스트 상자를 차례로 각각 두 행. 이러한 에서 DataGrid 동일한 방식으로 추가하십시오.
  7. 위쪽 레이블을 클릭하십시오. 속성 창을 표시하려면 F4 키를 누릅니다. Text 속성 을 위해 제품 변경하십시오. 다른 레이블을 클릭한 다음 범주 해당 Text 속성 을 변경하십시오.
  8. 프로젝트에 새 데이터 집합 을 추가하려면 Ctrl + Shift + A를 눌러 및 서식 파일 목록에서 DataSet 을 클릭하십시오. 다음 데이터 집합 이름: dsProducts.xsd. XML 스키마 실제로 파일임을 유의하십시오. 확인 을 클릭하십시오. 이제 편집기 창에서 흐린 노란색 페이지를 참조하십시오.
  9. 형식화된 데이터 집합 을 만들려면 서버 탐색기를 열려면 Ctrl + Alt + S를 누릅니다.
  10. 서버computer name 을, SQLServers 를 클릭합니다. 그리고 server name 을 클릭합니다. 그리고 Northwind 를 클릭한 다음 보기 를 클릭하십시오.
  11. Northwind SQL Server 보기를 제품의 사전순 목록 을 선택하고 보기를 흐린 노란색 DataSet 페이지로 끕니다. 뷰가 생성된 결과 집합 시각적으로 페이지에 나타납니다. 스키마 파일의 실제 XML 편집기 창 아래에 XML 단추를 클릭하십시오.
  12. 이제 SQL Server 개체에 따라 스키마 존재합니다. 먼저 만들고 형식화된 데이터 집합 을 채울 수 있는 스키마 맵을 클래스를 생성해야 합니다. 디자인 보기에서 마우스 오른쪽 단추로 클릭한 다음 데이터 집합 생성 옵션이 선택되어 있는지 확인하십시오. 선택되어 있지 않으면 선택하십시오. 스키마 저장하고 클래스를 생성하는 Ctrl + S를 누릅니다.
  13. 새 형식화된 데이터 집합 을 보려면 솔루션 탐색기에서 모든 파일 표시 를 클릭하십시오.
  14. dsProducts.xsd 옆의 트리를 확장하십시오. 새 클래스 매핑 스키마에 포함된 dsProducts.vb 파일을 참조하십시오. 또한 파일에 변경 내용을 추적하는 데 사용되는 dsProducts.xsx 파일을 참조하십시오.
  15. 형식화된 데이터 집합 을 표시하는 코드를 작성하려면 직접 Web Form의 (에 대해 웹 컨트롤) 두 번 클릭하십시오. Web Form의 코드 숨김 나타나고 Page_Load 이벤트 안에 삽입 지점입니다.
  16. System.Data.SqlClient 네임스페이스에 있는 클래스를 포함하려면 다음 문을 사용하여 코드 숨김은 맨 위에 추가합니다:
    using System.Data.SqlClient;
    					
    참고: 이 작은 웹 응용 프로그램에 대해 가지고 있는 다른 네임스페이스에 있는 Visual Studio .NET에서 웹 응용 프로그램을 만들 때 프로젝트에 자동으로 참조됩니다.

  17. SqlConnection 클래스의 기본 생성자를 연결 문자열을 전달하는 방식으로 연결 개체를 Page_Load 이벤트 프로시저를 만듭니다:
    SqlConnection cn = new SqlConnection("server=myserver;uid=myuid;pwd=mypassword;database=northwind");
    					
  18. 다음 SqlDataAdapter 개체에 전달되는 SqlCommand 개체를 만듭니다. 임시 SQL 문 및 새 Connection 개체를 SqlCommand 생성자에 전달하십시오. 전자는 새 SqlCommand 개체에 CommandText 속성을 설정합니다. 저장 프로시저의 이름을 전달할 수도 있습니다.
    SqlCommand cmd = new SqlCommand("select * from [Alphabetical list of products]", cn);
    					
  19. 생성자에 새 SqlCommand 개체에 전달하는 SqlDataAdapter 개체의 인스턴스를 만드는:
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    					
  20. 이제 데이터베이스에 연결하여 데이터를 반환하는 데 필요한 개체를 만듭니다. 다음 형식의 DataSet 코드입니다. dsProducts 클래스의 인스턴스를 만든 참고: dsProducts 스키마 매핑하고 않는 제네릭 DataSet 클래스 자체에 DataSet 클래스에서 상속된 클래스를.
    dsProducts tds = new dsProducts();
    					
  21. 형식화된 DataSet 개체를 전달하면 SqlDataAdapter Fill 메서드를 호출하고 DataSetDataTable TableName 속성을 입력한:
    da.Fill(tds, tds.Tables[0].TableName);
    					
  22. Text 속성을 텍스트 상자 컨트롤이 형식화된 DataSetDataTable 의 강력한 형식의 열에 설정하려면 다음 형식을 사용합니다:
    dsProducts.DataTableName[RowIndex].ColumnName
    						
    이 샘플 응용 프로그램에 대해 하드 코드된 5로 있는 RowIndex 것입니다:
    TextBox1.Text = tds.Alphabetical_list_of_products[5].ProductName;
    TextBox2.Text = tds.Alphabetical_list_of_products[5].CategoryName; 
    						
    페이지가 로드될 때 Rows 컬렉션의 0부터 수, 텍스트 상자 컨트롤을 DataGrid 의 여섯 번째 행에 항목 제품 및 범주 이름을 표시하는 참고.
  23. DataGrid 의 모든 결과를 표시하려면 새 형식화된 DataSet 에, DataGrid DataSource 속성을 설정하고 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 키를 누릅니다. 브라우저에 "유기적인 Dried 배 삼촌 Bob의" 제품 텍스트 상자 및 "[범주] 텍스트 상자에서 가공 식품" 표시됩니다. 제품 정보로 채워진 DataGrid 텍스트 상자 아래에 나타납니다.

문제 해결

  • 일반 데이터 집합과Fill 메서드를 호출하면 TableName 전달할 필요가 없습니다. 그러나 인덱스를 TableName 대신 의해 DataSet테이블 컬렉션에 액세스한 경우 형식화된 데이터 집합, 이 필요하십시오. 형식화된 DataSetTableName 전달할 실패 런타임에 "은 없습니다 행 위치 0에" 오류를 발생시킵니다. 이 요구 사항에 형식화된 DataSet 을 또한 직접 TableName 있지만 백업할 수 없습니다 수단을 앞의 코드와 같이 액세스할 형식화된 데이터 집합 클래스를 참조하는 한 통과해야 합니다.
  • 처음에는 스키마를 생성하는 데 사용되는 및 형식의 DataSet 클래스 및 해당 스키마 디자인 보기로 다시 끌어 데이터베이스 개체를 변경할 경우 Visual Studio .NET을 통해 생성되는 스키마를 변경하면 수동으로 변경한 내용은 덮어씁니다. 일반적으로 선호됩니다 Microsoft SQL Server 수준에서 할 변경 작업을 수행할 수 및 결과 스키마 변경하는 것보다 새 형식화된 데이터 집합 을 생성할 수 있습니다.

참조

형식화된 DataSet 함께 작업하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.
http://msdn2.microsoft.com/en-us/library/esbykkzb(vs.71).aspx


속성

기술 자료: 320714 - 마지막 검토: 2007년 5월 17일 목요일 - 수정: 2.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
키워드:?
kbmt kbhowtomaster KB320714 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

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