こんにちは、
このクエリに取り組んでおり、vb.net 3.5 Webサイト上のSQL 2008データベースから一部のデータをエクスポートしています。最初のクエリの後に動的linqを使用して、日付、州、国、専門分野、および病院の所属に基づいて結果をフィルター処理しています。
これらの各フィルターは、クエリで特異値を持っています。コンマで区切られたリストを持つ病院所属を除きます。例:OSUMC、Hospital West、Hopsital East
フィルタリングするときに、.Containsを実行して、コンマ区切りリストに特定の病院が含まれているかどうかを確認する必要があります。例:(OSUMC、HospitalWest、Hospital East).contains( "OSUMC")
日付、州、国、専門分野でフィルターをかけると、クエリは完全に正常に実行されます。ただし、.Contains()フィルターである病院所属のフィルターを追加すると、タイムアウトエラーが発生します。
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細と、エラーがコードのどこで発生したかについては、スタックトレースを確認してください。
例外の詳細: System.Data.SqlClient.SqlException:タイムアウトの期限が切れました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。
Dim ctx As New OSUMCEntities
Dim query = (From ca As OSUMCModel.vw_ConferenceAttendance In ctx.vw_ConferenceAttendance Select New With _
{ _
.LastName = ca.LastName, _
.FirstName = ca.FirstName, _
.UserID = ca.UserID, _
.UserName = ca.Username, _
.Degree = ca.DegreeName, _
.Specialty = ca.Specialty, _
.Profession = ca.Profession, _
.HospitalAffiliations = ca.HospitalAffiliations, _
.Address1 = ca.MailingAddress1, _
.Address2 = ca.MailingAddress2, _
.City = ca.MailingCity, _
.State = ca.MailingState, _
.ZipPostal = ca.MailingZip, _
.Country = ca.MailingCountry, _
.ConferenceID = ca.ConfID, _
.Title = ca.Title, _
.Date = ca.StartDate, _
.MaxCredits = ca.Credits, _
.CreditsAwarded = ca.CreditHours, _
.CreditsAssignedOn = ca.AssignedOn, _
.LastUpdated = ca.LastUpdate _
})
If (txtDateStart.Text <> "" And txtDateEnd.Text <> "") Then
Dim StartDate As Date = txtDateStart.Text
Dim EndDate As Date = txtDateEnd.Text
query = query.Where("(Date >= @0 And Date <=@1)", StartDate, EndDate)
ElseIf (txtDateStart.Text <> "") Then
Dim StartDate As Date = txtDateStart.Text
query = query.Where("Date >= @0", StartDate)
ElseIf (txtDateEnd.Text <> "") Then
Dim EndDate As Date = txtDateEnd.Text
query = query.Where("Date <= @0", EndDate)
End If
If (ddlState.SelectedValue <> "Export All") Then
query = query.Where("State = @0", ddlState.SelectedValue)
End If
If (ddlCountry.SelectedValue <> "Export All") Then
query = query.Where("Country = @0", ddlCountry.SelectedValue)
End If
If (ddlSpecialty.SelectedValue <> "Export All") Then
query = query.Where("Specialty = @0", ddlSpecialty.SelectedValue)
End If
If (ddlHospitals.SelectedValue <> "Export All") Then
Dim Hospital As String = ddlHospitals.SelectedValue
query = query.Where("HospitalAffiliations.Contains(@0)", Hospital)
End If