> 백엔드 개발 > C#.Net 튜토리얼 > C#의 데이터세트

C#의 데이터세트

王林
풀어 주다: 2024-09-03 15:05:17
원래의
419명이 탐색했습니다.

DataSet은 데이터를 행과 열로 나타내는 테이블 구조로 표현하는 연결 해제형 아키텍처입니다. 데이터세트는 로컬 시스템에 존재하는 데이터베이스의 로컬 복사본으로, 애플리케이션을 더 빠르고 안정적으로 실행하게 해줍니다. DataSet은 제약 조건, 테이블 간의 관계 등을 포함하는 전체 데이터 세트를 포함하는 실제 데이터베이스처럼 작동합니다. “System.name” 네임스페이스에서 찾을 수 있습니다. 데이터”.

구문:

DataSet의 구문은 아래와 같습니다.

public class DataSet : System.ComponentModel.MarshalByValueComponent, IListSource, ISupportInitializeNotification, ISerializable, IXmlSerializable
{
}
로그인 후 복사

데이터세트 작동 방식

DataSet은 테이블 구조에 관계형 데이터를 포함하는 데이터 테이블의 모음입니다. 메모리 관리에서 데이터베이스의 하위 집합을 나타냅니다. DataSet은 데이터베이스에 대한 활성 또는 개방형 연결이 필요하지 않은 연결이 끊긴 아키텍처입니다. 이러한 방식으로 연결이 끊긴 환경으로 인해 데이터 소스와 상호 작용하지 않고도 데이터를 얻을 수 있습니다. 이는 System.Data 네임스페이스에 속합니다. 예를 들어 C#에서 DataSet의 작업 절차를 이해해 보겠습니다. 두 개의 데이터 테이블인 Employee 및 Salary 테이블을 만든 다음 데이터 열을 만들어 테이블에 열을 추가하고 마지막으로 데이터 행을 만들어 두 테이블에 레코드를 추가합니다. 아래의 코딩을 살펴보겠습니다.

DataTable EmployeeDetails 생성

DataTable EmployeeDetails = new DataTable("EmployeeDetails");
//to create the column and schema
DataColumn EmployeeID = new DataColumn("EmpID", typeof(Int32));
EmployeeDetails.Columns.Add(EmployeeID);
DataColumn EmployeeName = new DataColumn("EmpName", typeof(string));
EmployeeDetails.Columns.Add(EmployeeName);
DataColumn EmployeeMobile = new DataColumn("EmpMobile", typeof(string));
EmployeeDetails.Columns.Add(EmployeeMobile);
//to add the Data rows into the EmployeeDetails table
EmployeeDetails.Rows.Add(1001, "Andrew", "9000322579");
EmployeeDetails.Rows.Add(1002, "Briddan", "9081223457");
로그인 후 복사

급여 테이블의 경우 SalaryID, EmployeeID, EmployeeName 및 Salary 속성이 포함된 SalaryDetails라는 이름의 DataTable을 생성하여 급여 테이블에 열을 추가한 다음 두 개의 데이터 행을 생성하고 해당 데이터 행을 Salary 테이블에 추가합니다.
그런 다음 DataTable SalaryDetails를 만듭니다.

DataTable SalaryDetails = new DataTable("SalaryDetails");
//to create the column and schema
DataColumn SalaryId = new DataColumn("SalaryID", typeof(Int32));
SalaryDetails.Columns.Add(SalaryId);
DataColumn empId = new DataColumn("EmployeeID", typeof(Int32));
SalaryDetails.Columns.Add(empId);
DataColumn empName = new DataColumn("EmployeeName", typeof(string));
SalaryDetails.Columns.Add(empName);
DataColumn SalaryPaid = new DataColumn("Salary", typeof(Int32));
SalaryDetails.Columns.Add(SalaryPaid);
//to add the Data rows into the SalaryDetails table
SalaryDetails.Rows.Add(10001, 1001, "Andrew",42000);
SalaryDetails.Rows.Add(10002, 1002, "Briddan",30000);
로그인 후 복사

DataTable을 사용하여 DataSet을 생성하려면

DataTable 컬렉션으로 DataSet에 대해 논의한 것처럼 DataSet에 대한 개체를 생성한 다음 두 개의 데이터 테이블(Employee 및 Salary)을 DataSet에 추가합니다.

//to create the object for DataSet
DataSet dataSet = new DataSet();
//Adding DataTables into DataSet
dataSet.Tables.Add(EmployeeDetails);
dataSet.Tables.Add(SalaryDetails);
By using index position, we can fetch the DataTable from DataSet, here first we added the Employee table so the index position of this table is 0, let's see the following code below
//retrieving the DataTable from dataset using the Index position
foreach (DataRow row in dataSet.Tables[0].Rows)
{
Console.WriteLine(row["EmpID"] + ", " + row["EmpName"] + ", " + row["EmpMobile"]);
}
Then second table we added was SalaryDetails table which the index position was 1, now we fetching this second table by using the name, so we fetching the DataTable from DataSet using the name of the table name "SalaryDetails",
//retrieving DataTable from the DataSet using name of the table
foreach (DataRow row in dataSet.Tables["SalaryDetails"].Rows)
{
Console.WriteLine(row["SalaryID"] + ", " + row["EmployeeID"] + ", " + row["EmployeeName"] + ", " + row["Salary"]);
}
로그인 후 복사

C#의 DataSet은 다음과 같은 4개의 생성자를 제공합니다.

  • DataSet()은 System.Data.DataSet 클래스에서 파생되며 클래스의 새 인스턴스를 초기화합니다.
  • DataSet(String data SetName)은 이름을 나타내며 System.Data.DataSet의 이름을 지정하는 문자열 매개변수 dataSetName이 포함된 이름으로 System.Data.DataSet 클래스의 새 인스턴스를 초기화합니다.
  • DataSet(직렬화 정보, StreamingContext 컨텍스트)는 위와 동일하며 시스템의 새 인스턴스를 초기화합니다. 데이터. 직렬화 정보와 컨텍스트를 제공하는 DataSet 클래스입니다. 여기에는 정보가 개체를 직렬화하거나 역직렬화하도록 만드는 데이터인 두 개의 매개 변수가 포함되어 있습니다. 컨텍스트는 소스에서 대상까지 주어진 직렬화된 스트림을 나타냅니다.
  • DataSet(SerializationInfo info, StreamingContext context, bool ConstructSchema)는 위와 동일하며 System의 새 인스턴스를 초기화합니다. 데이터. DataSet 클래스입니다.

데이터세트는 로컬 시스템에 존재하는 데이터베이스의 로컬 복사본으로, 애플리케이션을 더 빠르고 안정적으로 실행하게 해줍니다. DataSet은 제약 조건, 테이블 간의 관계 등을 포함하는 전체 데이터 세트를 포함하는 실제 데이터베이스처럼 작동합니다. DataSet은 데이터를 행과 열로 나타내는 테이블 구조로 표현하는 연결 끊김 아키텍처입니다.

다음과 같이 프로그래밍 방식으로 예제를 살펴보겠습니다.

프로그램

using System;
using System.Collections.Generic;
using System. Data;
namespace Console_DataSet
{
class Program
{
static void Main(string[] args)
{
try
{ // building the EmployeeDetails table using DataTable
DataTable EmployeeDetails = new DataTable("EmployeeDetails");
//to create the column and schema
DataColumn EmployeeID = new DataColumn("EmpID", typeof(Int32));
EmployeeDetails.Columns.Add(EmployeeID);
DataColumn EmployeeName = new DataColumn("EmpName", typeof(string));
EmployeeDetails.Columns.Add(EmployeeName);
DataColumn EmployeeMobile = new DataColumn("EmpMobile", typeof(string));
EmployeeDetails.Columns.Add(EmployeeMobile);
//to add the Data rows into the EmployeeDetails table
EmployeeDetails.Rows.Add(1001, "Andrew", "9000322579");
EmployeeDetails.Rows.Add(1002, "Briddan", "9081223457");
// to create one more table SalaryDetails
DataTable SalaryDetails = new DataTable("SalaryDetails");
//to create the column and schema
DataColumn SalaryId = new DataColumn("SalaryID", typeof(Int32));
SalaryDetails.Columns.Add(SalaryId);
DataColumn empId = new DataColumn("EmployeeID", typeof(Int32));
SalaryDetails.Columns.Add(empId);
DataColumn empName = new DataColumn("EmployeeName", typeof(string));
SalaryDetails.Columns.Add(empName);
DataColumn SalaryPaid = new DataColumn("Salary", typeof(Int32));
SalaryDetails.Columns.Add(SalaryPaid);
//to add the Data rows into the SalaryDetails table
SalaryDetails.Rows.Add(10001, 1001, "Andrew",42000);
SalaryDetails.Rows.Add(10002, 1002, "Briddan",30000);
//to create the object for DataSet
DataSet dataSet = new DataSet();
//Adding DataTables into DataSet
dataSet.Tables.Add(EmployeeDetails);
dataSet.Tables.Add(SalaryDetails);
Console.WriteLine("\n\n\tUSING DATASET");
Console.WriteLine("\n\nEmployeeDetails Table Data: \n");
//to reterieve the DataTable from dataset using the Index position
foreach (DataRow row in dataSet.Tables[0].Rows)
{
Console.WriteLine(row["EmpID"] + ", " + row["EmpName"] + ", " + row["EmpMobile"]);
}
Console.WriteLine();
//SalaryDetails Table
Console.WriteLine("\nOrderDetails Table Data: \n");
//retrieving DataTable from the DataSet using name of the table
foreach (DataRow row in dataSet.Tables["SalaryDetails"].Rows)
{
Console.WriteLine(row["SalaryID"] + ", " + row["EmployeeID"] + ", " + row["EmployeeName"] + ", " + row["Salary"]);
}
}
catch (Exception e)
{
Console.WriteLine("OOPS, Error.\n" + e);
} Console.ReadKey();
}
}
}
로그인 후 복사

출력:

C#의 데이터세트

결론 – C#의 데이터세트

이 기사에서는 애플리케이션을 더 빠르고 안정적으로 사용하는 데 도움이 되는 연결 해제 아키텍처인 C#의 DataSet에 대해 설명했습니다. 이 글이 DataSet의 작업 흐름을 프로그래밍적으로, 이론적으로 이해하는 데 도움이 되기를 바랍니다.

위 내용은 C#의 데이터세트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿