엑셀 시트를 SQL Server 데이터베이스로 가져오고 있습니다. 시트를 가져 오기 전에 특정 항목을 확인해야합니다. 예를 들어, 알파벳으로 시작하는 값이 있어야하며 나머지 숫자가 숫자 여야 만하는 여권이라는 열이 있어야합니다.어떻게 SqlBulkCopy를 사용하면서 Excel 셀 값의 값을 비교할 수 있습니까?
DataTable dt7 = new DataTable();
dt7.Load(dr);
DataRow[] ExcelRows = new DataRow[dt7.Rows.Count];
// Bulk Copy to SQL Server
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "ExcelTable";
dt7.Rows.CopyTo(ExcelRows, 0);
for (int i = 0; i < ExcelRows.Length; i++)
{
if (ExcelRows[i]["data"] == DBNull.Value)
{
// Include any actions to perform if there is no date
//ExcelRows[i]["data"] = Convert.ToString(0);
}
else
{
DateTime oldDate = Convert.ToDateTime(ExcelRows[i]["data"]).Date;
DateTime newDate = Convert.ToDateTime(oldDate).Date;
ExcelRows[i]["data"] = newDate.ToString("yyyy/MM/dd");
}
}
bulkCopy.WriteToServer(ExcelRows);
위의 코드에서 여권 열은 어디에 있습니까? – andy
그래서 BCP 전에 확인해야합니까? 쿼리/SP를 사용하여 DB에서 확인 할 수 있습니까? SQL Server 기본 제공 함수를 사용하여 상대적으로 간단해야하기 때문입니다. – OzrenTkalcecKrznaric
@Anandkumar 그게 아니라면 내가 여권을 추가 할 것인가? 나는이 접근법을 보여주기 위해이 코드를 게시했다. – Arbaaz