none
Task 작업으로 datatable bulk insert 동시 작업.. RRS feed

  • 질문

  • task[] 로 task 를 5~10개 정도 생성하여 동시 작업을 진행하는데요

     실행하는 함수 안에 bulk insert 작업이 들어있습니다...따라서 동시에 table 이 bulk 될수있을것 같아서..

    bulk 될때

     public void bulkInsert(DataTable dt, string connectionString, string tbl)
            {
                using (SqlConnection con = new SqlConnection())
                {
                    con.ConnectionString = connectionString;
                    con.Open();

                    using (SqlBulkCopy sbc = new SqlBulkCopy(con, SqlBulkCopyOptions.TableLock,null))
                    {
                        sbc.BulkCopyTimeout = 0; // unlimited time-out

                        sbc.DestinationTableName = tbl;
                        try
                        {                      
                            sbc.WriteToServer(dt);                      
                        }
                        catch //갑자기 닫히면 다시 열어주고 넣자
                        {
                            //뭔가 오류가 있을땐 이곳으로
                            if (con.State != ConnectionState.Open)
                            {
                                con.ConnectionString = connectionString;
                                con.Open();

                                sbc.BulkCopyTimeout = 0;
                                sbc.DestinationTableName = tbl;
                                sbc.WriteToServer(dt);
                            }
                        }
                    
                    }
                }

    이런식으로   적용해놓았습니다.. table lock 걸려서 처리될 수 있도록이용..ㅜㅜ 그런데도  테이블에

     값이 몇개씩 안들어가는 부분이 있는것 같아서용 ㅜ.ㅜ....혹시 더 처리 추가하거나.. bulk 작업은 무조건 한개씩만 처리한다??ㅣ...

    이런방법은 어떻게 적용할 수 있을까요 ㅠ

    2014년 4월 2일 수요일 오후 1:06

답변

모든 응답