public DataTable fun1ArrayToDataTable(string[] sArrData, int nColumnCount, params string[] sArrColumnHeader)
{
int nRowCount = 0;
int nIndex = 0;
try
{
//1차원배열이 Null이거나 데이터가 없으면 그냥 빠져나간다.
if (sArrData == null || sArrData.Length <= 0) return null;
//생성하려고 하는 DataTable의 Column길이가 없으면 그냥 빠져나간다.
//if (nColumnCount <= 0) return null;
//컬럼 개수와 컬럼헤더 개수가 같지 않으면 그냥 빠져나간다.
if (nColumnCount != sArrColumnHeader.Length) return null;
//1차원 배열 길이를 가지고 생성할 DataTable의 Row개수를 가져온다.
if ((sArrData.Length % nColumnCount) == 0)
{
nRowCount = sArrData.Length / nColumnCount;
}
else
{
nRowCount = (sArrData.Length / nColumnCount) + 1;
}
DataTable dDT = new DataTable("NewTable"); //반환할 DataTable을 생성한다.
DataColumn dDC;
DataRow dDR;
//컬럼을 생성해서 DataTable에 추가한다.
for (int nColumnIndex = 0; nColumnIndex < nColumnCount; nColumnIndex++)
{
dDC = new DataColumn();
dDC.DataType = Type.GetType("System.String"); //Column은 String형식으로 한다.
dDC.ColumnName = sArrColumnHeader[nColumnIndex].ToString(); //인자로 넘어온 ColumnHeader를 지정해준다.
dDC.Caption = sArrColumnHeader[nColumnIndex].ToString();
dDT.Columns.Add(dDC); //생성된 컬럼을 DataTable에 추가한다.
}
//생성된 DataTable에 행 데이터를 추가한다.
for (int nRowIndex = 0; nRowIndex < nRowCount; nRowIndex++) //행 데이터를 추가한다.
{
dDR = dDT.NewRow();
for (int nColumnIndex = 0; nColumnIndex < nColumnCount; nColumnIndex++)
{
if (nIndex < sArrData.Length)
{
dDR[nColumnIndex] = sArrData[nIndex]; //1차원 배열의 값을 DataRow에 추가한다.
nIndex = nIndex + 1; //배열 Index를 증가시킨다.
}
}
dDT.Rows.Add(dDR); //생성한 행 데이터를 DataTable에 추가한다.
}
return dDT;
}
catch
{
throw new Exception();
}
}
public string[] funDataTableTo1Array(DataTable dtDataTable)
{
int nColumnCount = 0;
int nRowCount = 0;
int nIndex = 0;
string[] sArrData = null;
try
{
//DataTable이 Null이거나 Data가 없으면 그냥 빠져나간다.
//if (dtDataTable == null || dtDataTable.Rows.Count <= 0) return null;
nColumnCount = dtDataTable.Columns.Count; //컬럼개수를 가져온다.
nRowCount = dtDataTable.Rows.Count; //Row개수를 가져온다.
//배열의 Size를 구한다.
sArrData = new string[nColumnCount * nRowCount];
for (int nRowIndex = 0; nRowIndex < nRowCount; nRowIndex++)
{
for (int nColumnIndex = 0; nColumnIndex < nColumnCount; nColumnIndex++)
{
sArrData[nIndex] = dtDataTable.Rows[nRowIndex][nColumnIndex].ToString(); //1차원배열에 값을 저장한다.
nIndex = nIndex + 1;
}
}
return sArrData;
}
catch
{
throw new Exception();
}
}