0
我有一個ListBox,我正在填充一個SQL Server存儲過程,返回大約5000行。我的存儲過程如下所示。如何更有效地使用sql查詢填充列表框?
SELECT UserID,LanID
FROM User
ORDER BY LanID
現在我從這個過程創建一個DataTable,並使用該DataTable作爲ListBoxes數據源。
public DataTable getAllUsers(string environment)
{
List<Criteria> userList = new List<Criteria>();
using (SqlConnection sqlConnection = new SqlConnection(GetConnectionString(environment)))
{
sqlConnection.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter("usp_GetUser", sqlConnection))
{
var dataTable = new DataTable();
adapter.Fill(dataTable);
return dataTable;
}
}
}
,這是我如何調用該方法
private void setUsersListBox()
{
DataTable dtOfUsers = groupDetailDataAccess.getAllUsers("Development");
UsersListBox.DataSource = dtOfUsers;
UsersListBox.DataBind();
}
與所有這一切的問題是,一旦頁面加載,我可以做什麼,我需要在網頁上約10秒鐘做,然後它凍結約20秒。之後,它可以正常工作,直到頁面刷新或重新加載。我縮小到這個問題的列表框/查詢。
有沒有一種方法可以使這種效率更高以提高性能?
你真的需要在你的列表框中有5000行嗎?我認爲這會讓這個盒子笨重而難以使用。有沒有更好的方式讓用戶在這裏選擇數據? – BeanFrog
你可以在單獨的線程上運行查詢嗎? –
@BeanFrog我主要想要一個列表框,以保持頁面的其餘部分一致。我需要用戶能夠選擇多個用戶,所以我認爲列表框是最好的選擇 – user6641597