Please Enable JavaScript!
Gon[ Enable JavaScript ]

시샵 C# DataSet 에 값 셋팅과 읽기 오기 위한 여러가지 방법

기타 언어/C# & MFC
반응형

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());
}

 

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
시샵(C#) 프로젝트 기본 시작 Form 설정하기
C# 문자열변환 string -> int , int -> string
C# 윈폼(WinForm) 프로젝트에서 콘솔창(console) 띄워서 로그 보는 방법
시샵 C# 새로운 Form 다이얼로그, 팝업창 띄우기, 원하는 위치에 띄우기
시샵 C# using 네임스페이스 자동으로 추가하는 방법
샵 C# ListView 데이터 추가시 열에 추가하는 다양한 방법



 

 

 

테이블에서 데이터를 조회해서 채우는 방법이 있다면 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#] DataSet 에 값 셋팅과 읽기 오기 위한 여러가지 방법

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
시샵(C#) 프로젝트 기본 시작 Form 설정하기
C# 문자열변환 string -> int , int -> string
C# 윈폼(WinForm) 프로젝트에서 콘솔창(console) 띄워서 로그 보는 방법
시샵 C# 새로운 Form 다이얼로그, 팝업창 띄우기, 원하는 위치에 띄우기
시샵 C# using 네임스페이스 자동으로 추가하는 방법
샵 C# ListView 데이터 추가시 열에 추가하는 다양한 방법
반응형
Posted by 녹두장군1
,