روشهای انتقال متغیرها و داده ها از یک صفحه به صفحه دیگر با استفاده از Database
برای انتقال داده ها و متغیرها از یک صفحه به صفحه دیگر راه های متعددی وجود دارد که در این مقاله ما با استفاده از دیتابیس این کار را انجام میدهیم.
برای انجام این کار باید ابتدا یک جدول با نام usertable در دیتابیس با فیلد های Firstname , Lastname , age بسازیم. به همین جهت از دستور زیر برای ساخت یک دیتابیس در sql server استفاده می کنیم.برای کسب اطلاعات در حوزه Microsoft SQL Server چیست به شما پیشنهاد می شود مقاله اختصاصی ما را مطالعه نمایید.
create table usertable
(
UserId varchar(100),
FirstName varchar(50),
LastName varchar(30),
Age varchar(30)
)
توجه کنید که هیچ مقداری را با استفاده از Edit کردن جدول در فیلد های آن قرار ندهید.
اکنون مقادیر فیلد هارا با استفاده از دستورات زیر در جدول وارد میکنیم(به یاد داشته باشید که این مقادیر را از کنترلر های ورودی گرفته و مقادیر آنها را جایگزین میکنیم).
[irp posts=”۸۶۰۶″ name=”معرفی و کاربرد نرم افزار های بهینه سازی حجم پایگاه داده”]
نکته: در این مقاله ما به دلیل سادگی و جلوگیری از حجم زیاد مقاله نسبت به ایجاد Textbox و دیگر کنترلرها برای ورود اطلاعات نمیپردازیم.
insert into usertable values(5, ‘rohatash’,’Kumar’,’۲۳’)
go
insert into usertable values(3, ‘monu’,’rathor’,’۲۰’)
go
insert into usertable values(4, ‘rahul’,’sharma’,’۲۴’)
go
insert into usertable values(8, ‘ram’,’singh’,’۲۶’)
اکنون برای اطمینان از انجام صحیح کار با استفاده از دستور select مقادیر جدول usertable را بازیابی میکنیم که خروجی آن به صورت شکل زیر میباشد.
select * from usertable;
حالا باید ۲صفحه ی asp.net را برای انتقال اطلاعات با استفاده از دیتابیس از یکی به دیگری ایجاد کنیم.
[irp posts=”۴۲۶۸″ name=”asp.net چیست و همه چیز درباره کاربرد آن”]
در visual studio.net یک پروژه asp.net جدید ایجاد میکنیم و در صفحه 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)Handles Me.Load
If Not IsPostBack Then
hyper1.NavigateUrl = “showdetail.aspx?userid=4&com=show”
End If
End Sub
حال یک صفحه ی دیگر با نام showdetail.aspx ایجاد میکنیم و کد زیر را در آن قرار میدهیم:
<div>
<asp:DetailsView ID=”DetailsView1″ runat=”server” EnableViewState=”False”
Width=”۱۴۶px”>
</asp:DetailsView>
</div>
اکنون در code segment صفحه ی showdetail.aspx.cs در رویداد page_load قطعه کد زیر را به جهت بازیابی اطلاعات با استفاده از ado.net از دیتابیس ایجاد شده، وارد میکنیم.
Protected Sub Page_Load(ByVal sender As Object, ByVal eAs System.EventArgs)Handles Me.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$2;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 کلیک کنید تا به صفحه showdetail.aspx با اطلاعات درخواست شده و موجود در دیتابیس هدایت شوید.