c#에서 사용하는 DataSet, DataTable, DataRow의 개념을 한눈에 보여주는 사진이 있길래 들고 왔다.
DataSet, DataTable, DataRow의 클래스 구조나, 메서드 들은 아래의 링크에 잘 설명 되어있다.
https://docs.microsoft.com/ko-kr/dotnet/api/system.data.dataset?view=netframework-4.8
위 링크에 사용된 DataSet 예제를 간단히 인용해 설명해보자면,
using System;
using System.Data;
using System.Data.SqlClient;
namespace Microsoft.AdoNet.DataSetDemo
{
class NorthwindDataSet
{
static void Main()
{
string connectionString = GetConnectionString();
ConnectToData(connectionString);
}
private static void ConnectToData(string connectionString)
{
//Create a SqlConnection to the Northwind database.
using (SqlConnection connection =
new SqlConnection(connectionString))
{
//SqlDataAdapter를 호출, 객체생성한다. (Suppliers 테이블을 위한).
SqlDataAdapter adapter = new SqlDataAdapter();
// Suppliers 테이블로 매핑한다.
adapter.TableMappings.Add("Table", "Suppliers");
// 커넥션을 열고.
connection.Open();
Console.WriteLine("The SqlConnection is open.");
// 쿼리 command를 작성 및 생성
SqlCommand command = new SqlCommand(
"SELECT SupplierID, CompanyName FROM dbo.Suppliers;", // Suppliers 테이블 조회
connection);
command.CommandType = CommandType.Text;
// adapter 에 위에 입력한 command를 세팅
adapter.SelectCommand = command;
// DataSet에 쿼리 결과값을 넣는다.
DataSet dataSet = new DataSet("Suppliers");
adapter.Fill(dataSet);
// 두번째,SqlDataAdapter를 호출, 객체생성한다.
// Suppliers테이블의 하위테이블인 Products 테이블을 어뎁터에 매핑
SqlDataAdapter productsAdapter = new SqlDataAdapter();
productsAdapter.TableMappings.Add("Table", "Products");
SqlCommand productsCommand = new SqlCommand(
"SELECT ProductID, SupplierID FROM dbo.Products;",
connection);
productsAdapter.SelectCommand = productsCommand;
// DataSet에 쿼리 결과값을 넣는다.(첫번째, DataSet이랑 같은 DataSet)
productsAdapter.Fill(dataSet);
// 디비커넥션 닫음
connection.Close();
Console.WriteLine("The SqlConnection is closed.");
// 두개의 테이블을 조회해온 데이터를 읽어보자.
// SupplierID 컬럼.
DataColumn parentColumn =
dataSet.Tables["Suppliers"].Columns["SupplierID"]; // Suppliers 테이블의 SupplierID 컬럼
DataColumn childColumn =
dataSet.Tables["Products"].Columns["SupplierID"]; // Products 테이블의 SupplierID 컬럼
DataRelation relation =
new System.Data.DataRelation("SuppliersProducts", // Suppliers테이블의 하위테이블인 Products 테이블의 관계를 추가
parentColumn, childColumn);
dataSet.Relations.Add(relation);
Console.WriteLine(
"The {0} DataRelation has been created.",
relation.RelationName);
}
}
static private string GetConnectionString()
{
// 디비 접속 정보.
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
}
}
}
찬찬히 읽어 보면, DataRelation 클래스와, DataRelation 클래스의 사용법도 포함되어있다.
이 두 클래스는 다른 포스팅에 설명하겠다.
(DataRelation은 조인의 개념인 거 같다.)
'개발 언어 > C,C++,C#' 카테고리의 다른 글
C# 웹 컴파일러 / C# 실습해보기 (0) | 2020.02.09 |
---|---|
C# URL 가져와서 파라미터 자르기 (호출) (0) | 2020.02.08 |
[C#] 문자열 - 특정 문자열 위치 값 알아내기 (LastIndexOf() 함수) (0) | 2019.11.20 |
c# 스레드 중단 / thread.abort() (0) | 2019.09.03 |
[C#] namespace 네임스페이스 / using (0) | 2019.09.03 |
댓글