728x90
DataTable dataTable = new DataTable();
dataTable.Columns.Add("음식", typeof(string));
dataTable.Columns.Add("가격", typeof(int));
//dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns["음식"] };

dataTable.Rows.Add("고구마", 5200);
dataTable.Rows.Add("가지", 12600);
dataTable.Rows.Add("감자", 8400);

Console.WriteLine("{0}",  dataTable.Rows.Contains("감자"));
Console.WriteLine("{0}",  dataTable.Rows.Find("감자").Field<int>("가격"));

Unhandled exception. System.Data.MissingPrimaryKeyException: Table doesn't have a primary key.

 

기본키 설정 (여러칼럼 지정가능)

dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns["음식"] };

 

기본키(칼럼)행을 기준으로 열을 추적한다. 

기본키(음식)에 "감자"가 있는지, 기본키(음식)에 "감자"를 찾고 해당 열의 "가격" 칼럼의 값

 

예외 상황

dataTable.Rows.Add("고구마", 5200);
dataTable.Rows.Add("고구마", 4200);

Unhandled exception. System.Data.ConstraintException: Column '음식' is constrained to be unique.  Value '고구마' is already present.

기본키로 지정한 칼럼에 중복 값은 안됨.

 

 

728x90

'c#' 카테고리의 다른 글

[C#] 불필요한 판정  (0) 2023.01.31
[C#] 쿼리가 너무 많을 때 To.Array()  (0) 2023.01.31
[C#] 파일 확실하게 닫기  (0) 2023.01.26
[C#] 의미없는 구조체  (0) 2023.01.26
[C#] Out of Memory  (0) 2023.01.26
Posted by 바르마스
,