기타 언어/C# & MFC
시샵 C# DataSet 에 값 셋팅과 읽기 오기 위한 여러가지 방법
녹두장군1
2024. 3. 4. 22:25
반응형
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>
반응형