데이터베이스 관리 주제에 대한 프로젝트를하고 있습니다. 이전에 추가 된 금액에 금액을 추가하는 방법을 알 수 없습니다. 현재는 금액 만 업데이트 할 수 있습니다. 여기에 코드가 있습니다. 나는 그것을 잘 설명 할 수 없다면 미안하다.VB.net/MS 월별 기부 시스템 지원
2 가지 형식이 있습니다. 첫 번째 양식을 통해 성을 입력하고 목록보기로 데이터를 검색 할 수 있습니다.
두 번째 양식을 사용하면 첫 번째 양식에 입력 한 데이터를 검색 할 수 있으며 "성 | 금액"탭이있는 별도의 목록보기에 나타납니다.
두 개의 텍스트 상자가 있습니다. 하나는 성을 편집하기 위해 읽기 전용으로 설정하고 다른 하나는 입력하려는 값으로 설정합니다.
금액을 입력 한 후,이 문제는 내가 같은 성을위한 새로운 금액을 입력 할 때,의 (30)의 말을 할 수 있다는 점이다 (20)
로 목록보기에 업데이트하고 내 데이터베이스 것의 20을 가정 해 봅시다 30은 20을 대체하지만 20 + 30 = 50이기 때문에 50이어야합니다.
논리를 이해하고 추가로 다른 텍스트 상자를 추가하려고 시도했지만 코드를 모르겠습니다.

Imports System.Data.OleDb
Public Class Form2
Dim conString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Israel De Leon\Documents\testing.accdb;"
Dim con As OleDbConnection = New OleDbConnection(conString) 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database2.accdb
Dim cmd As OleDbCommand
Dim adapter As OleDbDataAdapter
Dim dt As DataTable = New DataTable()
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'SET LISTVIEW PROPERTIES
ListView1.View = View.Details
ListView1.FullRowSelect = True
'Construct Columns
ListView1.Columns.Add("Last Name", 100)
ListView1.Columns.Add("Amount", 100)
End Sub
Private Sub UpdateLV(lname As String)
'Updates last name and amount entered into the database
Dim sql As String = "UPDATE Table1 SET LastName='" + TextBox1.Text + "',Amount='" + TextBox2.Text + "' WHERE LastName='" + lname + "'"
cmd = New OleDbCommand(sql, con)
'OPEN CON, EXECUTE, UPDATE, CLOSE
Try
con.Open()
adapter = New OleDbDataAdapter(cmd)
adapter.UpdateCommand = con.CreateCommand()
adapter.UpdateCommand.CommandText = sql
If (adapter.UpdateCommand.ExecuteNonQuery() > 0) Then
MsgBox("Successfully Updated")
End If
con.Close()
Retrieve()
ClearBox()
Catch ex As Exception
MsgBox(ex.Message)
con.Close()
End Try
End Sub
Private Sub Retrieve()
ListView1.Items.Clear()
'SQL STM
Dim sql As String = "SELECT * FROM Table1 "
cmd = New OleDbCommand(sql, con)
'OPEN CON, RETRIEVE, FILL LISTVIEW
Try
con.Open()
adapter = New OleDbDataAdapter(cmd)
adapter.Fill(dt)
'LOOP THROUGH DT
For Each row In dt.Rows
Populate(row(0), row(1)) 'Index of database row
Next
'CLEAR DATATABLE
dt.Rows.Clear()
con.Close()
Catch ex As Exception
MsgBox(ex.Message)
con.Close()
End Try
End Sub
Private Sub Populate(lname As String, aamount As String)
'ROW ARRAY
Dim row As String() = New String() {lname, aamount}
Dim item As ListViewItem = New ListViewItem(row)
'ADD TO ROWS COLLECTION
ListView1.Items.Add(item)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Retrieve()
End Sub
Private Sub ListView1_MouseClick(sender As Object, e As MouseEventArgs) Handles ListView1.MouseClick
Dim llname As String = ListView1.SelectedItems(0).SubItems(0).Text
Dim amounts As String = ListView1.SelectedItems(0).SubItems(1).Text
TextBox1.Text = llname
TextBox2.Text = amounts
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim amounts As String = ListView1.SelectedItems(0).SubItems(0).Text
UpdateLV(amounts)
End Sub
Private Sub ClearBox()
TextBox1.Text = ""
TextBox2.Text = ""
End Sub
최종 클래스
이것은 프로토 타입입니다. 디자인에 신경 쓰지 마라. 나는 정말로 그 기능에 대한 도움이 필요하다. 고맙습니다!! –
실제로 문자열 유형 (액세스중인 텍스트) 인 _Amounts_라는 데이터베이스 필드가 있습니까? – Steve
@Steve 데이터 유형은 숫자입니다. –