반응형
DataSet 클래스는 DB 에서 값을 조회하여 채운 후 넘겨주면 다양한 형태로 읽어서 사용하게 됩니다. 셋팅하는 법과 여러가지 읽는 방법에 대해 이야기 할려고 합니다.
▼ 제가 작성한 샘플은 MySql 을 조회한 데이터입니다. Adapter 클래스는 어떤 DB 이든 사용법은 똑 같습니다. MySqlDataAdapter 의 Fill() 함수로 DataSet 객체에 조회한 데이터를 채웁니다. 값은 Tables[0].Rows 로 꺼냅니다. Fill() 로 추가한 데이터가 하나 이므로 Tables 의 인덱스가 0 이 되겠죠. Foreach 문을 사용해 하나씩 꺼냅니다. 그리고 테이블 필드명으로 값을 꺼내면 됩니다.
DataSet ds = new DataSet();
string sql = "select * from tb_code_info where CODE_ID = 'DELVERY_SORT'";
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = new MySqlCommand(sql, conn);
adapter.Fill(ds);
if (ds.Tables.Count > 0)
{
foreach (DataRow r in ds.Tables[0].Rows)
{
Console.WriteLine(r["DESC"]);
}
}
▼ 다음은 DataSet 에 Fill 할때 키값을 넣고 나중에 꺼내 쓰는 방법입니다. 여러 조회값을 DataSet 에 셋팅할 때 유용하겠죠.
DataSet ds = new DataSet();
string sql = "select * from tb_code_info where CODE_ID = 'DELVERY_SORT'";
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = new MySqlCommand(sql, conn);
adapter.Fill(ds, "DELVERY_SORT");
sql = "select * from tb_code_info where CODE_ID = 'MANAGER_SORT'";
adapter.SelectCommand = new MySqlCommand(sql, conn);
adapter.Fill(ds, "DELVERY_SORT");
DataTable dt = new DataTable();
dt = ds.Tables["DELVERY_SORT"];
foreach (DataRow dr in dt.Rows)
{
MessageBox.Show(dr["Column1"].ToString());
}
▼ 테이블에서 데이터를 조회해서 채우는 방법이 있다면 DataTable 을 하나씩 만들어 필드와 값을 채우는 방법이 있습니다. Columns.Add 를 사용해 필드를 만들고 Rows.Add 사용해 행값을 넣는 것입니다.
private void DataSetting()
{
// Create two DataTable instances.
DataTable table1 = new DataTable("DELVERY_SORT");
table1.Columns.Add("CODE_NAME");
table1.Columns.Add("CODE_VALUE");
table1.Rows.Add("배달", 1);
table1.Rows.Add("심부름", 2);
DataTable table2 = new DataTable("MANAGER_SORT");
table2.Columns.Add("CODE_NAME");
table2.Columns.Add("CODE_VALUE");
table2.Rows.Add(1, "관리업소");
table2.Rows.Add(2, "비관리업소");
// Create a DataSet and put both tables in it.
DataSet set = new DataSet("office");
set.Tables.Add(table1);
set.Tables.Add(table2);
// Visualize DataSet.
Console.WriteLine(set.GetXml());
}
▼ 제대로 들어갔는지 체크하기 위해 DataSet 의 GetXml() 함수를 사용해 출력해 봅니다. 그럼 아래와 같이 값들이 셋팅된 xml 코드를 볼수 있습니다.
<office>
<DELVERY_SORT>
<CODE_NAME>배달</CODE_NAME>
<CODE_VALUE>1</CODE_VALUE>
</DELVERY_SORT>
<DELVERY_SORT>
<CODE_NAME>심부름</CODE_NAME>
<CODE_VALUE>2</CODE_VALUE>
</DELVERY_SORT>
<MANAGER_SORT>
<CODE_NAME>1</CODE_NAME>
<CODE_VALUE>관리업소</CODE_VALUE>
</MANAGER_SORT>
<MANAGER_SORT>
<CODE_NAME>2</CODE_NAME>
<CODE_VALUE>비관리업소</CODE_VALUE>
</MANAGER_SORT>
</office>
반응형
'기타 언어 > C# & MFC' 카테고리의 다른 글
시샵 C# CSV 파일 저장 클래스 StreamWriter 한글 깨짐 현상 (1) | 2024.06.23 |
---|---|
시샵 C# ListView 데이터 추가시 첫 열에 추가하는 다양한 방법 (3) | 2024.04.02 |
시샵(C#) OpenFileDialog 도구 이용해서 파일 대화상자 구현하기 (0) | 2024.03.25 |
C# 개발 추가 Net Framework, Net Core 설치하기 (1) | 2023.12.31 |
C# 윈폼(WinForm) 프로젝트에서 콘솔창(console) 띄워서 로그 보는 방법 (0) | 2023.12.27 |
시샵(C#) 폼(From) 띄우기와 닫기 (1) | 2023.12.20 |
시샵 C# 파일경로에서 확장자, 파일명, 경로 추출하는 함수와 예제 (2) | 2023.10.22 |
시샵 C# 리스트뷰(ListView) 컨트롤 선택한 데이터 가져오기 (0) | 2023.09.18 |