기록 주가가있는 데이터베이스를 만들었습니다. 내 양식에는 두 개의 콤보 상자, ComboBox_Ticker
및 ComboBox_Date
이 있습니다. 이러한 콤보 박스가 채워지면 데이터베이스를 확인하고 해당 데이터가 데이터베이스에 있는지 확인하려고합니다. 그렇다면 Label_If_Present
레이블의 텍스트를 "데이터베이스"로 변경하고 싶습니다.ComboBox 변경 이벤트로 코드 트리거하는 방법
변경 이벤트에 문제가 발생합니다. 내가 텍스트 상자에서 데이터를 변경하면이 모든 일이 발생하기를 바랍니다. .TextChanged
및 .LostFocus
이벤트를 모두 시도했습니다. '.TextChanged'는 코드를 일찍 트리거하고 SQL 명령문에 throw 및 오류를 발생시킵니다. `.LostFocus '이벤트는 내 코드를 전혀 트리거하지 않습니다. 나는 성공적으로 내 프로젝트 내에서 다른 형태에이 개념을 구현 한
Public databaseName As String = "G:\Programming\Nordeen Investing 3\NI3 Database.mdb"
Public con As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & databaseName)
Public tblName As String = "Historical_Stock_Prices"
Private Sub Change_Labels(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox_Ticker.TextChanged, ComboBox_Date.TextChanged
con.Close()
Dim dr As OleDbDataReader
con.Open()
If (File.Exists(databaseName)) Then
Dim restrictions(3) As String
restrictions(2) = tblName
Dim dbTbl As DataTable = con.GetSchema("Tables", restrictions)
If dbTbl.Rows.Count = 0 Then
Else
Dim cmd2 As New OleDb.OleDbCommand("SELECT * FROM " & tblName & " WHERE Ticker = '" & ComboBox_Ticker.Text & "' " & " AND Date1 = '" & ComboBox_Date.Text & "'", con)
dr = cmd2.ExecuteReader
If dr.Read() = 0 Then
'If record does not exist
Label_If_Present.Text = ""
Else
Label_If_Present.Text = "In Database"
End If
con.Close()
End If
Else
End If
End Sub
:
여기에 내 현재 코드입니다. 이 하나는 약간 다르므로 나는 왜 이것이 작동하지 못하는지 알 수 없다.
SelectedItemChanged 또는 SelectedIndexChanged (또는 이와 비슷한 항목)는 이와 같이 일반적으로 사용됩니다. –