如何更有效地填充带有SQL查询的列表框



我有一个列表框,我正在使用SQL Server存储的过程,该过程返回约5000行。我的存储过程看起来像这样。

SELECT UserID,LanID
FROM User
ORDER BY LanID

现在,我从此过程创建一个数据台,并将该数据列为列表框数据源。

    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秒。之后,它可以正常工作,直到页面刷新或重新加载。我将其范围缩小到引起问题的列表框/查询。

有办法使我更有效地提高性能?

每个逻辑操作(需要时间花费时间(都应在单独的线程上,因此它不会锁定主UI线程。

最新更新