>  기사  >  백엔드 개발  >  데이터세트를 Datatable C#으로

데이터세트를 Datatable C#으로

WBOY
WBOY원래의
2024-09-03 15:21:26665검색

다음 문서에서는 Dataset to Datatable C#에 대한 개요를 제공합니다. 데이터베이스에서 데이터를 수집해야 할 때마다 데이터세트는 데이터베이스와 지속적으로 연결되지 않고 작업을 수행하며, 원본 데이터베이스와 유사한 가상 데이터베이스가 생성되고 데이터가 동일한 위치에 저장됩니다. 따라서 데이터세트는 데이터베이스 구조를 표현한 것이라고 말할 수 있습니다. Datatable은 데이터베이스에서 행과 열의 이름이 적절하게 지정된 데이터베이스의 한 테이블을 나타냅니다. 또한 구조의 행, 열, 행과 열의 제약 조건 캐시를 나타냅니다. Datatable은 DotNet의 기반이 되며 Datatable을 활용하여 데이터 세트와 데이터 뷰를 구현합니다.

데이터테이블 C#에 데이터세트란 무엇인가요?

  • 데이터 세트: 데이터 세트는 데이터 소스에 관계없이 일관되게 프로그래밍 가능한 모델을 제공하며 이는 데이터베이스에서 데이터의 메모리 표현을 만드는 데 도움이 됩니다. 데이터세트의 테이블은 DataTable, DataView를 사용하거나 데이터만 사용하여 생성할 수 있습니다. 데이터 어댑터를 사용하여 데이터 세트를 생성할 수도 있습니다.
  • Datatable: 데이터세트 내의 단일 테이블은 Datatable의 도움으로 표시되며, 단독으로 또는 데이터세트와 공동으로 생성할 수 있습니다. 구조는 테이블에 ForeignKeyConstraint와 Unique 제약조건이 있는 데이터베이스의 열, 행, 제약조건으로 표현됩니다.

데이터세트를 Datatable C#으로 변환

데이터세트에 이미 테이블이 있으므로 데이터세트를 데이터테이블로 쉽게 변환할 수 있습니다.

작성할 쿼리는 다음과 같습니다.

DataTable myTable = dataSet.Tables[0]

테이블을 이름으로 부를 수도 있습니다.

DataTable employeesTable = dataSet.Tables["Employees"]

데이터세트와 데이터테이블 C#의 차이점

  • 데이터세트는 테이블의 모음이므로 데이터테이블 그 자체입니다.
  • 데이터 테이블은 행과 열을 모아 테이블을 구성하는 것입니다.
  • 데이터세트는 테이블 간의 관계와 테이블이 데이터세트에 있어야 하는 제약 조건을 정의합니다. Datatable에는 테이블이 하나만 표시되므로 Datatable에 관계를 정의할 필요가 없습니다.
  • 데이터 테이블에는 테이블이 하나만 있지만 데이터 세트는 데이터 테이블의 모음이므로 데이터 세트는 데이터 테이블보다 무겁습니다.
  • 데이터 테이블에서는 한 번에 하나의 행만 가져올 수 있지만 데이터 세트에서는 여러 행과 열을 표시할 수 있습니다.

테이블 C# 생성

직접 또는 데이터 세트를 통해 데이터 테이블을 생성할 수 있습니다. Datatable 생성자는 테이블을 생성하는 방법 중 하나이고, 다른 방법은 데이터 세트의 table 속성에 add 메서드를 사용하는 것입니다. 데이터 어댑터 개체에는 데이터 테이블의 스키마에 사용할 수 있는 fillschema 메서드가 있거나 미리 정의된 대로 xml 스키마를 사용할 수 있습니다.

데이터세트에 데이터테이블이 있으면 다른 데이터세트에 동일한 테이블을 추가할 수 없습니다. 테이블의 열 컬렉션은 xml 또는 fillschema 메서드에서 파생된 데이터 스키마를 추가하는 곳입니다. 기본 열은 열에 대한 테이블 제약 조건과 함께 테이블에 필요합니다. 스키마 및 열 정의 후에 Datarow 개체를 테이블 행에 추가할 수 있습니다. Tablename 속성은 비워두거나 나중에 이름을 지정할 수 있으므로 초기 단계에서 정의할 필요가 없습니다. 데이터 세트에 테이블을 추가하려면 테이블에 이름을 지정하는 것이 좋습니다. 테이블 이름이 중복되면 예외가 발생합니다.

아래 스크립트를 사용하여 직원 테이블을 만들 수 있습니다.

DataTable currentTable = new DataTable("Employees")

데이터세트에 테이블을 추가하고 있습니다.

DataSet employeeDS = new DataSet();
DataTable empTable = customerDS.Tables.Add("EmpTable");

해당 조건이 모두 충족되는 예시에서 테이블을 생성하고 해당 테이블에 기본 키를 설정하고 있습니다.

// Create the Table
DataTable ProjectsTable = new DataTable("Projects");
// Build the Projects schema
projectsTable.Columns.Add("ID"
Type.GetType("System.Int32"));
projectsTable.Columns.Add("Name"
Type.GetType("System.String"));
projectsTable.Columns.Add("Estimate"
Type.GetType("System.Int32"));
// Set up the ID column as the PrimaryKey
DataColumn[] prmk = new DataColumn[1];
prmk[0] = ordersTable.Columns["ID"];
ordersTable.PrimaryKey = prmk;
ordersTable.Columns["ID"].AutoIncrement = true;
ordersTable.Columns["ID"].AutoIncrementSeed = 1;
ordersTable.Columns["ID"].ReadOnly = true;

Datatable 생성자는 프로젝트를 생성하는 데 사용되며 위 예에서는 increment, incrementseed, readonly 속성이 설정됩니다. 데이터 테이블 개체를 설정하고 이를 데이터 세트에 추가할 수도 있습니다. 제약 조건은 스크립트에서 기본 키로 설정되어야 하며 데이터 열 개체는 테이블의 열 컬렉션에 추가되어야 합니다.

DataSet employeeDS = new DataSet("EmpProject");
DataTable projectsTable = employeeDS.Tables.Add("Projects");
DataColumn pkCol = projectsTable.Columns.Add("ProjectID", typeof(Int32));
projectsTable.Columns.Add("ProjectType", typeof(Int32));
projectsTable.Columns.Add("CompanyName", typeof(string));
projectsTable.PrimaryKey = new DataColumn[] { pkCol };
New rows can be created with the below example in datatable.
DataRow workRow = currentTable.NewRow();
workRow["ProjectDuration"] = "4 weeks";
workRow[1] = "4 weeks";
currentTable.Rows.Add(workRow);
currentTable.Rows.Add(new Object[] { 1, "4 weeks" });
If we need to add 5 rows to the datatable, following code can be used.
DataRow workRow;
for (int i = 0; i <= 4; i++) {
workRow = currentTable.NewRow();
workRow[0] = i;
workRow[1] = "Duration" + i.ToString();
currentTable.Rows.Add(workRow);
}

행과 열을 사용하여 표 내부의 내용에 액세스할 수 있습니다. 또한 데이터 테이블 내부의 데이터를 확인하기 위해 상태, 순서와 같은 몇 가지 기준을 설정할 수도 있습니다. find 메소드는 데이터 테이블 내부의 행 검사에도 작동합니다.

Datatable C#에 대한 데이터세트의 예

다음은 데이터 테이블 C#에 대한 데이터 세트의 예입니다.

데이터세트를 Datatable C#으로

데이터 세트:

데이터세트의 예입니다. 데이터세트 칼리지 내부에는 두 개의 데이터테이블 학생과 학과가 있습니다.

코드:

using System;
using System. Data;
class Program
{
static void Main()
{
// Create 2 DataTable instances.
DataTable table1 = new DataTable("students");
table1.Columns.Add("name");
table1.Columns.Add("id");
table1.Rows.Add("mary", 1);
table1.Rows.Add("amir", 2);
DataTable table2 = new DataTable("department");
table2.Columns.Add("id");
table2.Columns.Add("physics");
table2.Rows.Add(1, "chemistry");
table2.Rows.Add(2, "maths");
// Create a DataSet and put both tables in it.
DataSet set = new DataSet("college");
set.Tables.Add(table1);
set.Tables.Add(table2);
// Visualize DataSet.
Console.WriteLine(set.GetXml());
}
}

위의 코드를 이용하여 학생과 학과가 생성된 데이터 테이블을 생성할 수 있습니다. 그런 다음 요구 사항에 따라 테이블 내부에 데이터를 삽입하고 데이터 세트에서 사용할 수 있습니다.

결론

데이터 세트는 데이터를 조작하고 사용자 요구 사항에 따라 데이터를 업데이트하는 데 도움이 되는 SqlDataAdapter의 도움으로 채워질 수 있습니다. 이는 데이터의 데이터 흐름과 연결되어 있지 않더라도 데이터 작업에 도움이 됩니다. 따라서 조작을 수행하는 동안 매번 데이터베이스에 액세스할 필요가 없습니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.