반응형

데이터베이스에서 이미지를 어떻게 관리하는지 찾아보니 이미지를 데이터베이스에 넣는게 가능하지만  그렇게는 하지 않고 파일의 경로만 데이터베이스에 저장하는 군요.. 


데이터베이스와 연동하기전에 먼저 DataGridView에 파일 경로와 이미지를 불러와 출력하는 것을 만들어봤습니다. 


Load버튼을 클릭하여 이미지를 찾아주면 텍스트박스에 이미지의 경로가 출력됩니다. 이때 추가버튼을 클릭하면 DataGridView에 이미지 경로가 추가되고 그 옆에 이미지의 썸네일이 출력됩니다.  


삭제는 원하는 행을 선택한 후 삭제를 클릭하면 삭제되도록 구현하였습니다. 


이미지 두개를 시험삼아 추가해본 결과입니다. 





DataGridView와 TextBox, Button 3개를 아래처럼 추가합니다. 그리고 OpenFileDialog를 추가합니다. 

클릭하면 아래 이미지가 크게 보입니다. 




사용한 코드는 다음과 같습니다. 각각의 이벤트 함수를 생성하는 것은 생략합니다.  


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
Public Class Form1
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
        'DataGridView를 선택하면 전체 한줄이 선택되게 됩니다. 
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
 
 
        Dim columnTextBox As New DataGridViewTextBoxColumn
        columnTextBox.Name = "파일 위치"
        columnTextBox.Width = 700
 
        DataGridView1.Columns.Add(columnTextBox)
 
 
        Dim columnImage As New DataGridViewImageColumn
        columnImage.Name = "이미지"
        columnImage.Width = 100
 
        'Add column to datagridview
        DataGridView1.Columns.Add(columnImage)
 
 
    End Sub
 
 
    Private Sub loadButton_Click(sender As Object, e As EventArgs) Handles loadButton.Click
 
        If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            filepathTextBox.Text = OpenFileDialog1.FileName
        End If
    End Sub
 
    Private Sub addButton_Click(sender As Object, e As EventArgs) Handles addButton.Click
 
        '공백을 입력할 수 없도록 에러처리 
        If filepathTextBox.Text = "" Then
            MsgBox("이미지 파일을 먼저 불러오세요")
            Return
        End If
 
 
        Dim original_image As Image = Image.FromFile(filepathTextBox.Text)
        Dim thumbimage As Image = original_image.GetThumbnailImage(100100NothingNew IntPtr())
 
        DataGridView1.Rows.Add(filepathTextBox.Text, thumbimage)
 
 
 
        '데이터가 입력되었던 텍스트박스를 비웁니다.
        filepathTextBox.Text = ""
    End Sub
 
    Private Sub deleteButton_Click(sender As Object, e As EventArgs) Handles deleteButton.Click
        '삭제할 수 없는 셀인 경우 에러처리
        If DataGridView1.SelectedRows(0).Cells(0).Value = Nothing Then
            Return
        End If
 
 
        Dim msgResult As MsgBoxResult = MsgBox("삭제하시겠습니까?", MsgBoxStyle.YesNo)
 
        If msgResult = MsgBoxResult.Yes Then
            DataGridView1.Rows.RemoveAt(DataGridView1.SelectedRows(0).Index)
 
            filepathTextBox.Text = ""
        End If
    End Sub
End Class
 
cs



프로젝트 파일을 압축한 파일입니다. 

ImageList_Example.zip




문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts