본문 바로가기
C#

DataTable에서 유용하게 사용 되는 것들

by 캡틴노랑이 2015. 8. 26.
반응형

DB저장시 널인지 체크

row["aaaa"] == DBNull.Value ? null : ((DateTime)row["aaaa"]).ToString("yyyyMMdd") 

--------------------------------------------------------------------------------------

 

최대값 구하기DataTable의 int형 컬럼에 null 입력하기

ds.Tables[0].Columns["COLNM"].AllowDBNull = true;    //안해도 될 것 같은데 혹시 몰라서
DataRow newRow;
newRow["COLNM"] = A == B ? 123 : DBNull.Value;

--------------------------------------------------------------------------------------

 

최대값 구하기

Tables[0].Select("컬럼1='조건1'").Max(x => (int)x["컬럼1"])

--------------------------------------------------------------------------------------

 

 

 

Select로 원하는 데이터 조회 

DataRow[] drs = dt.Select("(detailID = 1) AND (detailTypeID = 2)"); 
var rows = dthiddenColumn.Select("UseYN='Y'", "ColumnName ASC");	

rows = dt.Select(string.Format("ITEM_CD = ''",code));

--------------------------------------------------------------------------------------

 

조건에 대해서 선별, 정렬 그리고 DataTable로 변환

var drs = ds.Tables[0].Select("", "BUDAT, BELNR ASC");                                
bindTable = drs.CopyToDataTable();

------------------------------------------------------------------------------------- 

 

DaTable Linq

var dt = (from row in dtPrintCnt1.AsEnumerable()
          where row.Field("CD").ToString() == changeDt.Rows[i]["CD1"].ToString() 
            &&                                    
                 row.Field("RPT").ToString() != changeDt.Rows[i]["Cnt1"].ToString()                   
          select row);

--------------------------------------------------------------------------------------

 

 

데이터  컬럼 정의 및 데이터 넣기

DataTable tbl = new DataTable();
tbl.TableName = "Data";
tbl.Columns.Add("CODE", typeof(string));
tbl.Columns.Add("NAME", typeof(string));
tbl.Rows.Add(new object[] { "", "전체" });
tbl.Rows.Add(new object[] { "Y", "승인" });
tbl.Rows.Add(new object[] { "N", "미승인" }); 

-------------------------------------------------------------------------------------

 

DataSet복사 편하게

DataRow dr = bgvView.GetDataRow(bgvView.FocusedRowHandle);
DataTable dt = new DataTable();
dt = bindTable.Clone();
DataRow row = dt.NewRow();
row.ItemArray = dr.ItemArray;
dt.Rows.Add(row);

--------------------------------------------------------------------------------------

 

테이블 Dataset에 복사

DataSet ds = new DataSet();

DataTable dtDetail = dac.Test1(ItemCd, UserId).Tables[0].Copy();
dtDetail.TableName = "detail";
DataTable dtReference = dac.Test2(ItemCd, UserId).Tables[0].Copy();
dtReference.TableName = "reference";               
ds.Tables.Add(dtDetail);
ds.Tables.Add(dtReference);

--------------------------------------------------------------------------------------

 

다른 테이블에 있는 datarow를 새로운 테이블에 넣을 때 사용

var dr =  dtDetail.Select(string.Format("ColumnName = ''", gvHistory.GetFocusedRowCellValue("ColumnName")));
dtDetailSelect.Clear();
foreach (DataRow d in dr)
    dtDetailSelect.ImportRow(d);

grdDetail.DataSource = dtDetailSelect;

--------------------------------------------------------------------------------------

 

datarow 배열을 datatable로 변환한다.

var dr =  dtDetail.Select(string.Format("colName = ''", gvHistory.GetFocusedRowCellValue("colName ")));
dtDetailSelect = dr.CopyToDataTable();  
grdDetail.DataSource = dtDetailSelect;
반응형

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

txt 파일 불러오기  (0) 2015.08.26
String 메서드 응용  (0) 2015.08.26
LinQ  (0) 2015.08.26
yyyyMMdd 형식의 문자열을 DateTime으로 변경 해야될 때  (0) 2015.08.26
Action및 delegate  (0) 2015.08.26

댓글