본문 바로가기
창고

C# 데이터그리드뷰를 데이터테이블(DataTable)로 변환하는 방법

by 긍정왕수전노 2020. 6. 27.
반응형

안녕하세요. 긍정왕수전노입니다.

보통은 DataTable을 GridControl의 DataSource로 할당해주는 방식으로 사용하지만 역으로 GridControl의 DataSource를 DataTable로 변환하는게 필요할 수 있습니다.

 

그 코드를 아래에 공유 드립니다.

그대로 복붙해서 쓰시면 되겠습니다.

        public static DataTable GetDataGridViewAsDataTable(DataGridView _DataGridView)
        {
            try
            {
                if (_DataGridView.ColumnCount == 0)
                    return null;
                DataTable dtSource = new DataTable();
                //////create columns
                foreach (DataGridViewColumn col in _DataGridView.Columns)
                {
                    if (col.ValueType == null)
                        dtSource.Columns.Add(col.Name, typeof(string));
                    else
                        dtSource.Columns.Add(col.Name, col.ValueType);
                    dtSource.Columns[col.Name].Caption = col.HeaderText;
                }
                ///////insert row data
                foreach (DataGridViewRow row in _DataGridView.Rows)
                {
                    DataRow drNewRow = dtSource.NewRow();
                    foreach (DataColumn col in dtSource.Columns)
                    {
                        drNewRow[col.ColumnName] = row.Cells[col.ColumnName].Value;
                    }
                    dtSource.Rows.Add(drNewRow);
                }
                return dtSource;
            }
            catch
            {
                return null;
            }
        }
반응형