Ich bin neu in SQL. Ich bin mir nicht sicher, ob das möglich ist, aber ich habe zwei Tabellen namens P_Movies & P_TV_Shows. P_Movies hat eine Spalte namens MOVIEID & P_TV_SHOWS hat eine Spalte namens TVID.Wie Daten angezeigt werden, wenn Benutzereingaben ID # in Oracle.DataAccess.Client, VB Formularanwendung
Ich versuche, eine Aussage herauszufinden, wo, wenn der Benutzer movieID eingibt, wird es das bestimmte movietitle und Direktor auswählen. Das gleiche gilt für TVID, es wird diesen TV-Titel und TVDirector anzeigen. Hier
ist der Code, den ich habe:
'Reference Orcale'
Imports Oracle.DataAccess.Client
Public Class frmSearch
'Get a Connection , string into a variable'
Dim oradb As String = "Data Source=(DESCRIPTION=" _
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=------)(PORT=---))" _
+ "(CONNECT_DATA=(SERVICE_NAME=orclcitp)));" _
+ "User Id=----;Password=---;"
'Create an Oracle connection
Dim conn As New Odbc.OdbcConnection(oradb)
Private Sub BtnMainMenu_Click(sender As Object, e As EventArgs)
Handles BtnMainMenu.Click
'Show Main Menu Form'
frmMainMenu.Show()
'Hide Search Form'
Me.Hide()
End Sub
Private Sub BtnClear_Click(sender As Object, e As EventArgs) Handles
BtnClear.Click
'Set Focus and selects MovieID textbox'
txtMovieID.Focus()
txtMovieID.Select()
'Clear textbox and label'
txtMovieID.Clear()
txtTVID.Clear()
lblTitleDisplay.Text = ""
lblDirectorDisplay.Text = ""
End Sub
Private Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles
BtnSearch.Click
'Create Variables for the data that will be retrieved from the database'
Dim strTitle As String = ""
Dim strDirector As String = ""
conn.Open() ' Open Orcale Connection'
'Select All Varaibles From database string'
Dim sql1 As String = "SELECT MOVIETITLE, MOVIEDIRECTOR FROM P_MOVIES
WHERE MOVIEID = '" & txtMovieID.Text & " ' SELECT TVTITLE,TVDIRECTOR
FROM P_TV_SHOWS WHERE TVID= '" & txtTVID.Text & "'"
'Create orcale command'
Dim cmd1 As New OracleCommand(sql1, conn)
'Eqaual command to the user selection'
cmd1.CommandText = sql1
cmd1.CommandType = CommandType.Text
'Create Oracle data reader which be stored in the variables created'
Dim dr As Odbc.OdbcDataReader = cmd1.ExecuteReader()
While dr.Read()
If Not dr.GetValue(0) Is DBNull.Value Then _
strTitle = dr.GetString(0)
strDirector = dr.GetString(1)
End While
'Assign Variables to the data labels which will display them'
lblTitle.Text = strTitle
lblDirector.Text = strDirector
'Close Orcale Connection'
conn.Close()
'Set Focus to movieid textbox'
txtMovieID.Focus()
End Sub
End Class
Ihre SQL-Syntax ist nicht korrekt. Verwenden Sie ein 'UNION ALL', um beide Ergebnisse zu erhalten:' Wählen Sie ... Von P_MOVIES Wo ... Union Alle Wählen ... Von P_TV_SHOWS Wo ... '. Verwenden Sie zusätzlich Parameter, anstatt die MovieID, TvId aufgrund von SQL-Injection-Problemen zu verketten. –