あなたが言ったように、「ドロップダウンと同じデータソースであるため、ドロップダウンにはより小さな個別のリストが表示されます。」
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
を使用して、ページが を直接実行できるようPage’s Static Methods
にしJSON (JavaScript Object Notation)
ます。posting back and then receiving HTML markup
toの代わりにcompletely replace our UpdatePanel’s contents
、 a を使用して、web method
関心のある情報のみを要求できます。
サンプルコード

出力

したがって、結論は、私は間違いなくViewState
BUTを使用するということ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シャープのサンプルコード
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