다음 문서에서는 Dataset to Datatable C#에 대한 개요를 제공합니다. 데이터베이스에서 데이터를 수집해야 할 때마다 데이터세트는 데이터베이스와 지속적으로 연결되지 않고 작업을 수행하며, 원본 데이터베이스와 유사한 가상 데이터베이스가 생성되고 데이터가 동일한 위치에 저장됩니다. 따라서 데이터세트는 데이터베이스 구조를 표현한 것이라고 말할 수 있습니다. Datatable은 데이터베이스에서 행과 열의 이름이 적절하게 지정된 데이터베이스의 한 테이블을 나타냅니다. 또한 구조의 행, 열, 행과 열의 제약 조건 캐시를 나타냅니다. Datatable은 DotNet의 기반이 되며 Datatable을 활용하여 데이터 세트와 데이터 뷰를 구현합니다.
데이터세트에 이미 테이블이 있으므로 데이터세트를 데이터테이블로 쉽게 변환할 수 있습니다.
작성할 쿼리는 다음과 같습니다.
DataTable myTable = dataSet.Tables[0]
테이블을 이름으로 부를 수도 있습니다.
DataTable employeesTable = dataSet.Tables["Employees"]
직접 또는 데이터 세트를 통해 데이터 테이블을 생성할 수 있습니다. 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 메소드는 데이터 테이블 내부의 행 검사에도 작동합니다.
다음은 데이터 테이블 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!