본문 바로가기

IT/Visual Studio

[C#] SQL 쿼리로 Excel 추가 삭제하기


Excel을 SQL 문장으로 Insert/Update/Delete/Select 처리가 가능합니다.


 

   --  SQL


   --  엑셀 Sheet 일반에서 데이터 가져오기


   SELECT DISTINCT   일자, STR(순번) as 순번, 거래처코드, 주문고유번호, '' as 택배사, '' as 송장번호, 수령자명, 수령자휴대폰 as 전화번호, 


                           비고 as 주소,배송비금액, '' as 사이트, 배송메세지, '' as 메모


    FROM [일반$]​ 


 


 


     // Excel 화일을 선택한다. 


       private void btnExcel_Click(object sender, EventArgs e)


        {


            //파일오픈창 생성 및 설정


            OpenFileDialog dlg = new OpenFileDialog();


            string sFileFullName = "";


 


            dlg.Title = "엑셀 파일을 선택하세요";


            dlg.FileName = "";


            dlg.Filter = "그림 파일 (*.xls, *.xlsx) | *.xls; *.xlsx; | 모든 파일 (*.*) | *.*";


 


            //파일 오픈창 로드


            DialogResult dr = dlg.ShowDialog();


 


            //OK버튼 클릭시


            if (dr == DialogResult.OK)


                sFileFullName = dlg.FileName;


            else


                return;


 


            btnGo.Enabled = false;


            try


            {


                _ConnectToExcel = new OleDbConnection(String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 5.0; HDR = YES;""", sFileFullName));


            }


            catch (Exception ex)


            {


                MessageBox.Show(ex.Message);


                return;


            }


            grdExcel.DataSource = null;


             btnGo.Enabled = true;


        }


 


 


        // Text box에 입력된 Query를 Grid에 출력하기


        private void btnGo_Click(object sender, EventArgs e)


        {


            OleDbDataAdapter excelda;


 


            try


            {


                excelda = new OleDbDataAdapter(String.Format("{0}", txtQuery.Text), _ConnectToExcel);


                excelda.Fill(excelds);


                grdExcel.DataSource = excelds.Tables[0].DefaultView;


                advExcel.BestFitColumns(true);


            } catch (Exception ex) 


            { 


                MessageBox.Show(ex.Message);


            }


        }​