2016-05-05 6 views
0

以下はASP.NETアプリケーションのコードの一部です。 providerOfficeQueryを実行すると、期待される結果が得られません。あなたは、クエリが使用しているデータベースの一部見ることができます:私は、フォーマットのためにごめんなさいASP.NETで書かれたSQLクエリー(コードビハインドがVBです)が期待された結果を提供していません

67   RUMINJO, ANNE MD CHAPEL HILL - PROVIDENCE RD  chapelhillProvidenceRDArrayList 
68   RUSSO, FRANK FNP-BC ASHEVILLE - RIDGEFIELD BLVD ashevilleRidgefieldBLVDArrayList 
69   SAWYER, LOUIS PHD DURHAM COUNSELING CENTER durhamCounselingCenterArrayList 
70   SAWYER, LOUIS PHD DURHAM - SHANNON RD durhamShannonRDArrayList 
71   SCHIAPPA, JENNIFER LCSW CARY COUNSELING CENTER caryCounselingCenterArrayList 

を、フィールドはそれぞれID、プロバイダー、オフィス、OFFICE_ARRAY_LISTです。

providerNameが "SAWYER、LOUIS PHD"と等しい場合、私は69行と70行の2つの結果を生成し、その後 "DURHAM COUNSELING CENTER"と "DURHAM - SHANNON RD"実際に何が起こっているのかという質問が実行されるのは、私が「DURHAM COUNSELING CENTER」を2回終えることです。結果を確認するために結果をListBoxに追加してこれを確認しました。

私は専門家ではありません。私はGoogleやさまざまなフォーラムを精査しており、これが期待した結果をもたらさない理由を見つけることができません。どんな考え?

ありがとうございました。

Dim ResultCount = provierOfficeQuery.Count() 

、あなたは、実際には2つの結果が返さ取得していることを確認する「DURHAMカウンセリングセンター」の場合のためにResultCountの値を出力する:追加

  ' find the Provider's office and add it to the ListBox 
     Dim providerOfficeQuery = From populateItem In db.Sheet3_ 
            Where populateItem.PROVIDER = providerName 
            Select populateItem 

     For Each x In providerOfficeQuery 

      providerInfoOffice = x.OFFICE 

      If providerInfoOffice = "ASHEVILLE - DOCTOR'S PARK" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS OF CENTRAL ASHEVILLE") 
      ElseIf providerInfoOffice = "ASHEVILLE - RIDGEFIELD BLVD" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS OF SOUTH ASHEVILLE") 
      ElseIf providerInfoOffice = "CARY - E CHATHAM ST" Then 
       providerInfoListBox.Items.Add("CPMH AFFILIATE: CARY - DONNA PARRISH") 
      ElseIf providerInfoOffice = "CARY - KILDAIRE FARM RD" Then 
       providerInfoListBox.Items.Add("CPMH AFFILIATE: CARY - JENNY TART") 
      ElseIf providerInfoOffice = "CARY - SE CARY PKWY" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS OF CARY") 
      ElseIf providerInfoOffice = "CARY COUNSELING CENTER" Then 
       providerInfoListBox.Items.Add("CARY COUNSELING CENTER") 
      ElseIf providerInfoOffice = "CHAPEL HILL - FRANKLIN ST" Then 
       providerInfoListBox.Items.Add("CPMH AFFILIATE: CHAPEL HILL - DANA BENNISON") 
      ElseIf providerInfoOffice = "CHAPEL HILL - PROVIDENCE RD" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS Of CHAPEL HILL") 
      ElseIf providerInfoOffice = "CHARLOTTE" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS OF CONCORD") 
      ElseIf providerInfoOffice = "DURHAM - BROAD ST" Then 
       providerInfoListBox.Items.Add("CPMH AFFILIATE: DURHAM - SARAH DAWSON") 
      ElseIf providerInfoOffice = "DURHAM - NEW HOPE COURT" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS AT NEW HOPE COURT") 
      ElseIf providerInfoOffice = "DURHAM - SHANNON RD" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS AT SHANNON RD") 
      ElseIf providerInfoOffice = "DURHAM COUNSELING CENTER" Then 
       providerInfoListBox.Items.Add("DURHAM COUNSELING CENTER") 
      ElseIf providerInfoOffice = "NORTH RALEIGH COUNSELING CENTER" Then 
       providerInfoListBox.Items.Add("NORTH RALEIGH COUNSELING CENTER") 
      ElseIf providerInfoOffice = "RALEIGH - DRESSER COURT" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS OF RALEIGH") 
      ElseIf providerInfoOffice = "RALEIGH - NEUROPSYCH CLINIC" Then 
       providerInfoListBox.Items.Add("THE NEUROPSYCH CLINIC") 
      ElseIf providerInfoOffice = "RALEIGH - RALEIGH ANNEX" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS RALEIGH ANNEX") 
      ElseIf providerInfoOffice = "RALEIGH - WELLNESS CENTER" Then 
       providerInfoListBox.Items.Add("THE WELLNESS CENTER") 
      ElseIf providerInfoOffice = "WAKE FOREST - CAPCOM AVE" Then 
       providerInfoListBox.Items.Add("CAROLINA PARTNERS OF WAKE FOREST") 
      ElseIf providerInfoOffice = "WAKE FOREST - WFCC" Then 
       providerInfoListBox.Items.Add("WAKE FOREST COUNSELING CENTER") 
      ElseIf providerInfoOffice = "WILSON - NASH ST" Then 
       providerInfoListBox.Items.Add("WILSON PSYCHIATRIC ASSOCIATES A CAROLINA PARTNERS PRACTICE") 
      End If 

      providerInfoOffice = Nothing 

     Next 
+0

Dim providerOfficeQuery行にブレークポイントを設定し、あなたが何のために取得するかを確認します。 – Zaki

+0

私はしたが、私は2つの結果を得て、両方が "DURHAM COUNSELING CENTER"です。 –

+0

EFを使用していますか? db.Sheet3_とは何ですか?彼らが別のオフィスを持っていることを確認してください。 – Zaki

答えて

0

してみてください。

2つではない場合は、Zakiの言葉通りにソースデータを確認する必要があります。たとえば、SAWYER、LOUIS PHDのレコードの1つにPROVIDERフィールドに余分なスペースや何かがある可能性があります。

+0

私はアドバイスをして、2つの結果が得られていることを確認しました。両方の結果が「DURHAM COUNSELING CENTER」です。私が過去にそのような誤りを犯したように、スペルミスや余分なスペースがあったかもしれないとの考えが現れましたが、今回はそうではありません。これはまったく意味がありませんか? –

+0

私は問題の内容を把握しました。 entityFrameworkを作成したときに作成されたモデルは決して更新されなかったので、クエリが実行されたときに、テーブル定義の古い情報が使用されていました。 ID列は含まれていませんでした。モデルが更新されたので、期待どおりの結果が得られました。何が起きているのかを説明するために適切なキーワードを使用していないと申し訳ありません。 –

関連する問題