如何在 asp.net页面之间传递数据

在本文中我们将看到如何使用查询字符串将值从一个页面传递到另一个页面。

我们将在SQL SERVER数据库使用UserID,FirstName,LastName,Age字段创建一个表。

create table usertable

(

UserId varchar(100),

FirstName varchar(50),

LastName varchar(30),

Age varchar(30)

)

现在插入一些数据到表中:

insert into usertable values(5, 'rohatash','Kumar','23')

go

insert into usertable values(3, 'monu','rathor','20') 

go

insert into usertable values(4, 'rahul','sharma','24') 

go

insert into usertable values(8, 'ram','singh','26') 

现在使用SELECT语句。

select * from usertable;

Asp.Net页面1代码:

default1.aspx.

<div>

                         <a href="showdetail.aspx?userid=5" title="Show records where userId is 5">Show records where userId is 5</a>
                      <p><asp:HyperLink ID="hyper1" runat="server" Text="Show Record where userID is 4"></asp:HyperLink> </p>
                         </div>

default1.aspx.cs.

Protected Sub Page_Load(ByVal sender As Object, ByVal eAs System.EventArgs)HandlesMe.Load
   If Not IsPostBack Then
        hyper1.NavigateUrl = "showdetail.aspx?userid=4&com=show"
   End If

                         End Sub

现在添加新页面。

Asp.Net页面2代码:

showdetail.aspx.

<div>
<asp:DetailsView ID="DetailsView1" runat="server" EnableViewState="False"
       Width="146px">
   </asp:DetailsView>   

                         </div>

showdetail.aspx.cs.

将QueryString值检索到ShowDetails.aspx的Page_load事件中并传递给GetData方法。
getData方法使用ADO.NET从数据库中检索值并填充到DetailsView。

Protected Sub Page_Load(ByVal sender As Object, ByVal eAs System.EventArgs)HandlesMe.Load

   If Not IsPostBack Then
       If Not String.IsNullOrWhiteSpace(Request.QueryString("userid"))Then
           Dim userId As Integer = 0
           Integer.TryParse(Request.QueryString("userid"), userId)

           If Not userId.Equals(0) Then

                GetData(userId)
           End If

       End If

       Dim command As String = Request.QueryString("com")
   End If

                         End Sub
                         Private Sub GetData(ByVal userIdAs Integer)
   Dim table As New DataTable()
   Dim conn As New SqlConnection("Data Source=.;uid=sa;pwd=Password;database=master")

   If True Then
       Dim sql As String = "SELECT userId, FirstName, LastName, Age FROM usertable WHERE userId = @userId ORDER By userId"
       Using cmd As New SqlCommand(sql, conn)
           Dim ad As New SqlDataAdapter(cmd)

           If True Then
               Dim prm As New SqlParameter("@userId",SqlDbType.Int)
                prm.Value = userId
                cmd.Parameters.Add(prm)

                ad.Fill(table)
           End If
       End Using
   End If

    DetailsView1.DataSource = table
    DetailsView1.DataBind()
                         End Sub

现在运行应用程序。并测试它。

现在单击default.aspx上的超链接。
这将通过查询值重定向到ShowDetails.aspx页面。

日期:2020-04-11 22:50:12 来源:oir作者:oir