C#에서 SQL 대량 복사를 사용하여 Excel의 값을 테이블에 채우고 있습니다.SQL 대량 복사에 특정 값을 가진 열을 삽입하는 방법
DataTable dt = new DataTable();
string line = null;
int i = 0;
using (StreamReader sr = File.OpenText(@"c:\temp\table1.csv"))
{
while ((line = sr.ReadLine()) != null)
{
string[] data = line.Split(',');
if (data.Length > 0)
{
if (i == 0)
{
foreach (var item in data)
{
dt.Columns.Add(new DataColumn());
}
i++;
}
DataRow row = dt.NewRow();
row.ItemArray = data;
dt.Rows.Add(row);
}
}
}
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConsoleApplication3.Properties.Settings.daasConnectionString"].ConnectionString))
{
cn.Open();
using (SqlBulkCopy copy = new SqlBulkCopy(cn))
{
copy.ColumnMappings.Add(0, 0);
copy.ColumnMappings.Add(1, 1);
copy.ColumnMappings.Add(2, 2);
copy.ColumnMappings.Add(3, 3);
copy.ColumnMappings.Add(4, 4);
copy.DestinationTableName = "Censis";
copy.WriteToServer(dt);
}
}
위 코드에서 Excel의 레코드를 테이블에 삽입하려고합니다. 그러나 Censis 테이블에는 "ProcessID"라는 열이 하나 더 있습니다. 매번 실행할 때마다 GUID를 생성하고이 열을 채워야합니다.
위와 같이 실행될 모든 행에 대해 생성 된 GUID를 사용하여 대량 복사를 수행 할 때 ProcessID 열을 채우는 방법을 알려줄 수 있습니까?
자세한 내용을 추가 할 수 있습니까? – guiomie