0
A
답변
1
는 인식 C#을 내 강점이 아니고 아래도이 작업을 수행 할 수있는 이상적인 방법이 될하지 않을 수 마십시오. 당신이 더 적합 무언가를 발견 할 경우는 C#을 DataTable
에로드 할
내 Biml 프로젝트로 CSV 기반의 메타 데이터를 포함 발견하는 가장 쉬운 방법입니다 :)에 대해, 난 아주 많이 듣고 싶습니다 그런 다음 내 Biml에서 이라는 C# 변수 개체로 참조하는 개체는 행을 반복 할 때 foreach
과 매우 잘 맞습니다. 당신이 당신의 Biml 프로젝트에 C 번호를 포함하는 방법을 알고 가정
는 (직접 또는를 통해 .cs
파일 참조 파일에), 다음과 같은 코드를 사용할 수 있습니다
public static DataTable FlatFileToDataTable(string filePath, char delimiter)
{
DataTable dt = new DataTable();
using (StreamReader sr = new StreamReader(filePath))
{
string[] headers = sr.ReadLine().Split(delimiter);
foreach (string header in headers)
{
dt.Columns.Add(header);
}
while (!sr.EndOfStream)
{
string[] rows = sr.ReadLine().Split(delimiter);
DataRow dr = dt.NewRow();
for (int i = 0; i < headers.Length; i++)
{
dr[i] = rows[i];
}
dt.Rows.Add(dr);
}
}
return dt;
}
나는를 사용하기 위해 생각 StreamReader
코드 파일에도 using System.IO;
을 추가해야합니다.
사용하여 Biml 내에서 코드 조각을 사용하여 참조 할 다음, DataTable
객체를 정의하고 위의 결과로 채우하는 것입니다 :
DataTable YourDataTable = FlatFileToDataTable("<Path to CSV file>",'<Value Delimiter>');
...
<Columns>
<# foreach(DataRow r in YourDataTable.Rows){ #>
<Column Name="<#=r["YourColumnName"]#>" etc />
<# } #>
</Columns>
예. 몇 가지 샘플 데이터를 보여주고 어떻게 사용하여 패키지 및 작업을 수행할까요? – billinkc