Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- C#
- dataset
- insert into
- mdb table 합치기
- MDB
- 유성
- Xcode
- 스위프트
- 대전
- python
- swift
- Exif
- euc-kr
- StreamReader
- 대전 업힐
- swift html parser
- kanna html parser
- 엑셀
- 대전 자전거
- VBA
- 자전거
- file move
- kanna parser
- EXIF data
- html parser
- exifread
- 달력
- 딴지일보 자유게시판 파씽
- 노은
- 파이썬
Archives
- Today
- Total
Fly to the sky & Return
[c#] 선택된 폴더 내부에 있는 MDB 파일들 마다 들어있는 특정 테이블을 합치기 (최종완성본) 본문
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
날짜별로 정리된 데이터 백업본이있을때 이것을 하나의 파일로 합치는 과정이라 볼수 있습니다.
일단 테이블의 구조는 모두 같아야 합니다. 그리고 중복이 일이날수 도 있으므로 기본키등이설정되어 있는경우는 에러가 납니다.
기본키 설정을 해제해도 무방한 경우 진행을 해야합니다.
각 테이블관의 관계가 설정되어 있는 경우가 에러가 발생합니다.. 관계를 삭제했다가 추후에 복원할수 있다면 삭제 후 진행하시기 바랍니다.
기본키삭제나 관계 삭제가 불가능한 경우는 다른 방법을 찾으셔야 합니다.
다음 소스는 기본키 설정 헤제 및 테이블관의 관계를 삭제한 후 진행하는 소스입니다.
기본적으로 INSERT INTO query를 사용합니다.
1 | string sql = @"insert into target_table select * from [" + db_path2 + "; PWD =].[test_table] "; // test_table의 데이터를 target_table로 insert | cs |
target_table이 들어있는 mdb 파일을 기본 연결로 설정한 후 query를 실행합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.OleDb; using System.IO; namespace mdb_table_insert { public partial class Form1 : Form { public string db_path = @"c:\test\target_DB.mdb"; public string db_path2; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { string startupPath = Application.StartupPath; using (FolderBrowserDialog dialog = new FolderBrowserDialog()) { dialog.Description = "Open a folder which contains the MDB output"; dialog.ShowNewFolderButton = false; dialog.RootFolder = Environment.SpecialFolder.MyComputer; if (dialog.ShowDialog() == DialogResult.OK) { string folder = dialog.SelectedPath; foreach (string fileName in Directory.GetFiles(folder, "*.mdb", SearchOption.TopDirectoryOnly)) { db_path2 = fileName; string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + db_path + ";Jet OLEDB:Database Password="; OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connStr); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = conn; conn.Open(); string sql = @"insert into target_table select * from [" + db_path2 + "; PWD =].[test_table] "; // test_table의 데이터를 target_table로 insert cmd.CommandText = sql; cmd.ExecuteNonQuery(); conn.Close(); } } } } catch (System.Data.OleDb.OleDbException E) { MessageBox.Show(E.ToString()); } MessageBox.Show("완료"); } } } | cs |
이 소스를 이용하여 약 200개의 mdb파일을 합치는 작업을 완료하였습니다. 각 파일에는 2개의 테이블만 존재하는 터라 한개 작업하고 테이블 이름 변경후에 또 작업하는 방법을 취했는데 테이블이 여러개가 있다면 순환문을 이용해서 적용하는 것도 한 방법이 될것 같습니다.
'프로그래밍 > c# & VB 등' 카테고리의 다른 글
dataset 마지막 Row 값 알아내기 (0) | 2018.01.30 |
---|---|
다중 모니터를 이용한 번호 전광판 시스템 만들어보기 (0) | 2016.09.08 |
[c#] mdb 특정 테이블의 컬럼 값을 불러오는 소스 (0) | 2016.04.04 |
[C#] 두개의 mdb파일 내부에 있는 테이블을 합치는 코드 (0) | 2016.04.02 |
Datagridveiw 내용을 Print 하기 (0) | 2015.09.17 |