티스토리 뷰

======================================================

안녕하세요 Doridori 입니다.


원래는 조금더 빨리 연휴기간에 올리려고 준비 하고 있었는데 본가에도 다녀오고 애들도 챙기고 


이것저것 하다 보니 조금 더 늦어졌습니다. ^^;;


강의는 어느정도 봐주시기는 한데 정체되어 있는 느낌도 들고 해서 뭔가 고민이 많이 되는 요즘 인듯 합니다. 


DB 같은 경우는 사전에 알아야 하는 내용들이 많아서 준비 하는데 조금 더 힘들었는데 


DB가 이런거다 대략 적으로 구조는 알겠다 정도만 보고 조금 더 깊은 내용은 찾아 보실 수 있는 정도만 되면 좋을 것 같습니다. 


화이팅 하시죠!!

======================================================




45. DB 사용하기 (WordSearch)

 

 

Source UI) Study_45_DB 사용하기(WordSearch) (UI).zip

Soruce 전체) Study_45_DB 사용하기(WordSearch).zip

예제 DB) English.mdb

교재) 45. DB 사용하기(WordSearch).pdf









이번 강의 내용은 DB 에 대한 내용입니다. 


많은 분들이 요청 해 주셨는데 그냥 막 쓰는걸 올릴수도 없고 접근 하는 방법도 다양하고 해서 어떻게 정리해야 할지 고민을 참 많이 했던것 같습니다. 


그래서 기본적으로 가장 많이 사용되는게 뭔기 왜 많이 사용하게 되었는지 다른건 어떤것 들이 있는지 사용하려면 어떻게 해얗야하는지 식으로 대략 적으로 다루어 보려고 합니다. ^^;;


이정도면 간단한 개인 DB는 충분히 관리 하는 프로그램을 짤 수 있다고 생각 합니다. 


여러 DB가 있으나 Excel 관련 내용도 다룰 내용이기 때문에 기본적으로 Office 프로그램이 깔려 있다고 보고 Access DB를 사용 하였습니다. 

(예전에는 컴퓨터 활용 능력 1급 시험을 칠때 사용 했던걸로 기억하는데 요즘은 어떨지 모르겠네요 ^^;;; )


SQL이나 오라클을 사용해도 좋겠지만 설치과정도 별도로 해야 하고 간단하게 테스트 하기에 한번 사용해 보는것도 좋을 듯 합니다. ^^;;





UI) 


간단 하게 DB를 사용 하고 Query를 테스트 해볼 수 있는 예제를 준비 했습니다. 


DB는 새로 만들어서 해보셔도 좋겠으나 자료가 어느 정도 있는걸 사용하시는게 좋을듯 하여 


예전에 단어장을 만들 때 사용하던 DB를 올려 놓았습니다. (받아서 사용 하시면 됩니다.)





강의)


옆에 계신분이 강의내용은 좋은데 유튜브로 올리기에는 강의가 너무 길다 라는 애기를 듣고 부터는 조금 줄여보려고 하는데 생각 보다 쉽지 않네요 ^^:;


그러다 보니 강의 중간중간에 시간 보는 버릇이 생긴거 같은데 그냥 집중해서 해야 겠습니다. ^^;;


(중간중간 편집하고 하면 보시는 분들이 따라 코딩 하 실 때 멈춰 놓고 적고 다시하고 이러면 어차피 시간이 엄청 길어 질듯 하여 논테이크로~ 쭉 하고 있습니다.)





Source)


뭔가 긴 소스는 아닌데 어느정도 깔끔 한 느낌의 소스가 나온듯 합니다. ^^;; 


만들어 놓고 되게 찝찝한 예제도 있는데 이번 예제는 길지 않지만 필요 한 내용들만 다 넣은 듯 해서 갠인적으로 만족 스럽네요.



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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WordSearch
{
    public partial class Form1 : Form
    {
        System.Data.OleDb.OleDbConnection _conn;
 
        public Form1()
        {
            InitializeComponent();
        }
 
 
        private void DBConnect(string strDBPath)
        {
            // DataAdapter는 자동으로 Connection을
            // 핸들링한다. conn.Open() 불필요.
            string connStr = $@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={strDBPath}";
            _conn = new OleDbConnection(connStr);
 
            string Query = $@"SELECT * 
                              FROM Voca";
 
            QueryExeCute(Query);
        }
 
        private void QueryExeCute(string Query)
        {
            // Fill 전달 전에 DataSet객체 생성
            DataSet ds = new DataSet();
 
            
            System.Data.OleDb.OleDbDataAdapter adp = new OleDbDataAdapter(Query, _conn);
            adp.Fill(ds);
 
            // 가져온 데이타를 DataGridView 컨트롤에 바인딩
            dgData.DataSource = ds.Tables[0];
        }
 
 
        /// <summary>
        /// 16 강에서 사용 한 OpenFileDialog 사용 ^^;;
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDBLoad_Click(object sender, EventArgs e)
        {
            string strFilePath = string.Empty;
 
            OFDialog.InitialDirectory = Application.StartupPath;   //프로그램 실행 파일 위치
            OFDialog.FileName = "*.mdb";
            OFDialog.Filter = "db files (*.mdb)|*.mdb|All files (*.*)|*.*";
 
            if (OFDialog.ShowDialog() == DialogResult.OK)
            {
                tboxPath.Text = OFDialog.FileName;
                DBConnect(tboxPath.Text);
            }
        }
 
        private void btnExe_Click(object sender, EventArgs e)
        {
            QueryExeCute(tboxQuery.Text);
        }
 
        private void btnEx_Click(object sender, EventArgs e)
        {
            Button obtn = (Button)sender;
 
            String strQuery = null;
 
            switch (obtn.Name)
            {
                case "btnEx1":
                    strQuery = $@"SELECT * 
FROM Voca";
                    break;
                case "btnEx2":
                    strQuery = $@"SELECT*
FROM Voca
WHERE 단어 LIKE ""%a%""";
                    break;
                case "btnEx3":
                    strQuery = $@"SELECT*
FROM Voca
ORDER BY ID DESC";
                    break;
                default:
                    break;
            }
 
            tboxQuery.Text = strQuery;
        }
 
    }
}
 
cs





댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함