ASP.Net의 SqlBulkCopy 및 ProgressBar

.net asp.net c# progress-bar sqlbulkcopy

문제

사실, Excel 파일을 가져오고 SqlBulkCopy 통해 DB 레코드를 저장하면 모든 것이 잘됩니다. 이제 SqlBulkCopy 통해 데이터를 저장하는 동안 ProgressBar 를 표시해야합니다.

내 코드 :

SBC.WriteToServer(dsExcel);
SBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);
SBC.NotifyAfter = 1;

SqlRowsCopied 이벤트 :

private static void OnSqlRowsCopied(object sender, SqlRowsCopiedEventArgs e)
{
//here i tried calling my progressbar. But I'm unable to call it.                   
}  

인기 답변

WriteToServer 메서드를 호출하기 전에 개체를 인스턴스화 한 직후에이 값을 설정해야한다고 생각합니다.

using (SqlConnection conn = new SqlConnection(ConnectionString))
{
    conn.Open();
    using (SqlBulkCopy sqlcpy = new SqlBulkCopy(conn))
    {
        sqlcpy.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied); //<<---- You need to add this here
        sqlcpy.NotifyAfter = 1;
        sqlcpy.BatchSize = batchSize;
        sqlcpy.BulkCopyTimeout = 60;

        using (SqlCommand cmd = new SqlCommand(Sql, conn))
        {
            cmd.ExecuteNonQuery();
            sqlcpy.DestinationTableName = TableName;  //copy the datatable to the sql table
            sqlcpy.WriteToServer(dt);
            return sqlcpy.GetRowsCopied();
        }
    }
}

말할 것도없이 OnSqlRowsCopied 이벤트 핸들러가 필요합니다.

private static void OnSqlRowsCopied(object sender, SqlRowsCopiedEventArgs e)
{
   Console.WriteLine("Copied {0} so far...", e.RowsCopied);
}


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.