我在一個VB.NET項目上工作,並且在如何連接表之間遇到問題。從vb.net的兩個不同頁面訪問數據庫中的兩個表之間的連接
我訪問數據庫[數據庫1]
表:T1,RequestDetails
T1: U_ID Name Address Phone
RequestDetails: U_ID RqNo Requestport country_of_request RqMethod
在第一頁中,用戶需要輸入自己的信息Name Address Phone
。點擊按鈕時,該數據將被插入數據庫並導航到第二頁。
在第二頁中,用戶應完成基礎上,U_ID
進入他的數據我有3個dropdownlists:Requestport
,country_of_request
和RqMethod
和D也是一個按鈕被按下時,它應該插入數據然後去。
一切都好;我分別在每個頁面上工作。現在我想連接U_ID
,T1
和RequestDetails
以使數據從第1頁和第2頁連接起來。
我不知道如何解釋問題我希望每件事情都清楚。
我第1頁代碼:
我建立連接類做有關的工作人員
Imports System.Data
Imports System.Data.OleDb
Imports System
Public Class connection
Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\hp\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\bin\Database1.accdb"
Dim con As New OleDbConnection(str)
Public Sub Insert(ByVal Name As String, ByVal Address As String, ByVal Phone As String)
If con.State = ConnectionState.Closed Then
con.Open()
End If
Dim adp As New OleDbCommand("insert into T1 values(" & GetMaxID() & ",'" & Name & "','" & Address & "','" & Phone & "') ", con)
adp.ExecuteNonQuery()
con.Close()
End Sub
Public Function GetMaxID() As Integer
Dim x As Integer = 1
If con.State = ConnectionState.Closed Then
con.Open()
End If
Dim adp As New OleDbCommand("select max(ID) from T1", con)
Try
x = adp.ExecuteScalar
Return x + 1
Catch ex As Exception
Return x
End Try
End Function
End Class
然後在按鈕:
Public Class _Default
Inherits System.Web.UI.Page
Dim x As New connection
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
x.Insert(TextBox1.Text, TextBox2.Text, TextBox3.Text)
Response.Redirect("~/ReqDetails.aspx")
End Sub
End Class
這裏是沒有問題的。
在該按鈕的第二頁:
Imports System.Data
Imports System.Data.OleDb
Imports System
Public Class shipmentDetails
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim str As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\hp\Documents\Visual Studio 2010\Projects\WebApplication1\WebApplication1\bin\Database1.accdb"
Dim con As New OleDbConnection(str)
con.Open()
Dim Command As New OleDbCommand("INSERT INTO RequestDetails(Requestport," & "country_of_request," & "RqMethod,")VALUES(@Requestport,@country_of_request,@RqMethod)", con)"
Command.Parameters.Add(New OleDbParameter("@Requestport", Requestport.SelectedItem.Text))
Command.Parameters.Add(New OleDbParameter("@country_of_request", country_of_request.SelectedItem.Text))
Command.Parameters.Add(New OleDbParameter("@RqMethod", RqMethod.SelectedItem.Text))
)
Command.ExecuteNonQuery()
con.Close()
Label1.Text = "Thank You. Your transaction was successful."
Label1.Visible = True
End Sub
End Class
這裏的問題是:
如果我填的數據,然後單擊下一步就說明我的錯誤,因爲U_Id
不填,它應該不爲空
這意味着它應該從第1頁讀取u_id
...我該怎麼做?
第1頁,設定你的'U_Id'在一個Session變量。第2頁會讀取會話變量。如果沒有設置,請相應處理。 – jp2code