正如您所说,“由于它与下拉列表的数据源相同,因此我在下拉列表中获得了一个较小的不同列表。”
您可以将 保留Database Information
在ViewState中。这样,您可以阻止 Request to Database
您的客户请求。因此Reducing the Access time
。
例子
public DataTable Employees
{
get
{
if (ViewState["Employees"] == null)
{
return FollowsDAL.GetAllEmployees();
}
return (DataTable)ViewState["Employees"];
}
set
{
ViewState["Employees"] = value;
}
}
如何使ViewState
数据过滤快速?
答案是 - 请不要使用Update Panel
. 我会用Page Method
.
请检查下面的示例。我Update Panel
与Script Manager
.
输出
要显示 22 个字符的字符串,您可以检查正在接收和发送到服务器的数据量。想象一下
- 如果您考虑使用更新面板将每个请求发送到数据库并且您的 GridView 在
Update Panel
!!!!!!
- 如果您对每个请求使用ViewState
GridView
数据并在Update Panel
.
根据我的理解,上述两种技术都是最差的。
现在我将向您描述页面方法
更新面板上的页面方法
Page methods
允许ASP.NET AJAX
页面直接执行 a Page’s Static Methods
,使用JSON (JavaScript Object Notation)
. 代替posting back and then receiving HTML markup
to completely replace our UpdatePanel’s contents
,我们可以使用 aweb method
只请求我们感兴趣的信息。
示例代码
输出
所以结论是我肯定会使用ViewState
BUT with Page Methods
.
ViewState 数据的过滤技术。
public static class GetFilteredData
{
public static DataTable FilterDataTable(this DataTable Dt,
string FilterExpression)
{
using (DataView Dv = new DataView(Dt))
{
Dv.RowFilter = FilterExpression;
return Dv.ToTable();
}
}
}
例子
DataTableObject.FilterDataTable("Search Expression")
嗨 vpiTriumph... 我发现代码有所改进。以下是建议的方法。
C Sharp 中的示例代码
private void DsataBaseInteraction()
{
using (SqlConnection con = new SqlConnection("Your Connection String"))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = con;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "Your Stored Procedure name";
using (SqlDataReader DR = cmd.ExecuteReader())
{
}
}
}
}
@KevinDeus - 我假设Database
正在使用的是SQL Server
. 所以下面提到的是我对Stored Procedure
in的建议Database
。
Create Proc ProcedureName
@UserName Varchar(50),
@Password Varchar(50),
@Email Varchar(50)
As
SET NOCOUNT ON
SET XACT_ABORT ON
Begin Try
Begin Tran
Insert into Account (Username,Password, Email)
Values(@UserName, @Password, @Email)
Commit Tran
End Try
Begin Catch
Rollback Tran
End Catch