グリッドビューに表示される結果は、デバッグ時に表示される結果とは異なります。
結果をフィルタリングするグリッドビューの検索があり、数値が数百未満の場合にのみ機能するようです。
例として、を検索しますrank
。ここで、rank =='10'
結果はすべてのストアドプロシージャの合計607になりますrank == 10
。linqからsqlへの結果はまったく同じデバッグです。
結果がグリッドビューにバインドされて表示されると、表示された結果の10ページに到達するまでは正しいように見えますが、結果は正しくありません。つまり、rank != 10
結果は、小さい結果セットに対して正しいように見えます。何が起こっているのかわかりません。
ここにコードがあります
DataTable getEmployeeResults = employee.FullEmployeeRoster();
var results = (from row in getEmployeeResults.AsEnumerable()
select new EmployeeRow
{
EmployeeId = row.Field<int?>("EmployeeID"),
Rank = row.Field<string>("Rank"),
Name = row.Field<string>("Name"),
WorkEmail = row.Field<string>("Email"),
DutyStation = row.Field<string>("StationName"),
Directorate = row.Field<string>("Directorate"),
BranchService = row.Field<string>("Branch"),
Active = ConvertToBool(row.Field<int>("Active"))
});
if (this.ddRank.SelectedValue != "")
{
results = results.Where(x => x.Rank == this.ddRank.SelectedItem.Text);
}
if (this.chkInactive.Checked)
{
results = results.Where(x => x.Active == false);
}
else
{
results = results.Where(x => x.Active == true);
}
this.gridEmployees.DataSource = results.ToList();
this.gridEmployees.DataBind();