如何在vb .net中使用内部联接来填充vb Windows窗体应用程序的文本框 [英] how to use inner join in vb .net to fill textbox of vb windows form application
问题描述
我是vb .net的新手,我正在制作一个项目航空公司预订系统,所以我必须从两个表中获取数据并以我的vb表单文本框显示,我正在使用内部联接从两个不同的表中获取数据,但我始终遇到错误,请大家看看我的代码并提出建议.这里,TICKET_RESERVATION表中的TICKET_NO,CUSTOMER_ID和FLIGHT_ID,TICKET_RESERVATION表和FLIGHT_DETAILS表中的FLIGHT_ID列中的FLIGHT_CHARGES,请帮助我
i am new in vb .net i am making a project airline reservation system so i have to fetch data from two tables and show in my vb form textboxs i am using inner join to fetching data from two different table but i am always getting error pls guys see my code and suggest me.here TICKET_NO,CUSTOMER_ID and FLIGHT_ID here in TICKET_RESERVATION Table and FLIGHT_CHARGES here in in FLIGHT_DETAILS Table and FLIGHT_ID column here in both TICKET_RESERVATION and FLIGHT_DETAILS Tables pls help me
我遇到错误,没有为一个或多个必需参数提供值
I am getting error no value given for one or more required parameter
Try
If Not con.State = ConnectionState.Open Then
con.Open()
End If
Dim da As New OleDb.OleDbDataAdapter("SELECT TICKET.TICKET_NO,CUSTOMER.CUSTOMER_ID,FLIGHT.FLIGHT_ID,FLIGHT.FLIGHT_CHARGES FROM TICKET_RESERVATION INNER JOIN FLIGHT_DETAILS ON TICKET_RESERVATION.FLIGHT_ID = FLIGHT_DETAILS.FLIGHT_ID WHERE [TICKET_NO]= '" & txtTicketNo.Text & "'", con)
Dim ds As New DataSet
da.Fill(ds, "TICKET_RESERVATION")
If ds.Tables("TICKET_RESERVATION").Rows.Count > 0 Then
txtTicketNo.Text = ds.Tables("TICKET_RESERVATION").Rows(0).Item(0).ToString()
txtCustomerId.Text = ds.Tables("TICKET_RESERVATION").Rows(0).Item(1).ToString()
txtFlightId.Text = ds.Tables("TICKET_RESERVATION").Rows(0).Item(2).ToString()
txtAmount.Text = ds.Tables("FLIGHT_DETAILS").Rows(0).Item(3).ToString()
End If
con.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
现在我的问题已解决,但现在我遇到错误对象引用未设置为我认为此代码现在存在问题的对象实例
now my prblem is solve but Now i am getting error Object reference not set to an instance of object i think now prblem in my this code
Dim ds As New DataSet
da.Fill(ds)
If ds.Tables("TICKET_RESERVATION").Rows.Count > 0 Then
txtTicketNo.Text = ds.Tables("TICKET_RESERVATION").Rows(0).Item(0).ToString()
txtCustomerId.Text = ds.Tables("TICKET_RESERVATION").Rows(0).Item(1).ToString()
txtFlightId.Text = ds.Tables("TICKET_RESERVATION").Rows(0).Item(2).ToString()
txtAmount.Text = ds.Tables("FLIGHT_DETAILS").Rows(0).Item(3).ToString()
End If
推荐答案
选择"查询的投影部分引用查询中其他地方不存在的表别名,例如票务,客户和航班...".
The projection part of your Select query refers to table aliases that don't exist elsewhere in the query - such as Ticket,Customer and Flight...
>
请改用此查询(您可以自己修复SQL注入...):
Try this query instead (you can fix the SQL Injection yourself...):
SELECT TICKET.TICKET_NO,CUSTOMER.CUSTOMER_ID,FLIGHT.FLIGHT_ID,FLIGHT.FLIGHT_CHARGES FROM TICKET_RESERVATION AS TICKET INNER JOIN FLIGHT_DETAILS AS FLIGHT ON TICKET_RESERVATION.FLIGHT_ID = FLIGHT_DETAILS.FLIGHT_ID WHERE [TICKET_NO]= '" & txtTicketNo.Text & "'", con)
由于CUSTOMER别名,它仍然会崩溃,因为我在查询中根本看不到任何东西,但是我已经修复了其他两个问题……也许您可以从Ticket_Reservation表中获取Customer_If-怀疑它会在那里...
It'll still crash because of the CUSTOMER alias that I can't see anything for at all in your query, but I've fixed the other two... Perhaps you could take the Customer_If from the Ticket_Reservation table - I suspect it will be there...
事实上,我会为您解决的……尝试一下:
in fact, I'll deal with that for you... Try this:
SELECT TICKET.TICKET_NO,TICKET.CUSTOMER_ID,FLIGHT.FLIGHT_ID,FLIGHT.FLIGHT_CHARGES FROM TICKET_RESERVATION AS TICKET INNER JOIN FLIGHT_DETAILS AS FLIGHT ON TICKET.FLIGHT_ID = FLIGHT.FLIGHT_ID WHERE [TICKET.TICKET_NO]= '" & txtTicketNo.Text & "'", con)
这篇关于如何在vb .net中使用内部联接来填充vb Windows窗体应用程序的文本框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!