2017-09-26 309 views
0

我需要幫助搞清楚如何編寫使用來自多個listboxes選擇多個參數的SELECT聲明。然後我需要處理該行並將特定列返回到textboxesSQL SELECT語句

我所要做的是填補了第一listbox與父項的列表,然後用三個listboxes,我深入到一個特定的部分,然後填寫textboxes與最終選擇的位置。

我至今是:

Private Sub GetPartDetails(ParentDesc As String, Description1 As String, Description2 As String, Description3 As String) 

     SQL.AddParameter("@ParentDesc", ParentDesc) 
     SQL.AddParameter("@Description1", Description1) 
     SQL.AddParameter("@Description2", Description2) 
     SQL.AddParameter("@Description3", Description3) 

     SQL.ExecQuery("SELECT TOP 1 * FROM PartsListMenu WHERE ParentItem = @ParentDesc AND FirstDescriptor = Description1 AND SecondDescriptor = @Description2 AND ThirdDescriptor = Descriptor3;") 


     For Each x As DataRow In SQL.DataBDataT.Rows 

      txtCabinet.Text = x("Cabinet") 
      txtDrawer.Text = x("Drawer") 
      txtRow.Text = x("Row") 
      txtSlot.Text = x("Slot") 
      txtQuantity.Text = x("Quantity") 
     Next 

    End Sub 

以下是我呼籲基於什麼已經在四個listboxes選擇了上面的代碼。

Private Sub lbThirdDescriptor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lbThirdDescriptor.SelectedIndexChanged 
      txtCabinet.Clear() 
      txtDrawer.Clear() 
      txtRow.Clear() 
      txtSlot.Clear() 
      GetPartDetails(lbParentItem.Text, lbFirstDescriptor.Text, lbSecondDescriptor.Text, lbThirdDescriptor.Text) 
End Sub 

listboxes是否正常工作,我已經驗證了每個描述參數包含正確的listbox選擇,但是當我選擇最後listbox,該textboxes不與任何東西填充。如果我縮小SELECT聲明一個參數,它將填補textboxes用於從所選擇的listbox適當的項目,合適的位置信息。

回答

0

不知道你是否有錯別字的實際代碼或只是在這裏的問題,但

SQL.ExecQuery("SELECT TOP 1 * FROM PartsListMenu WHERE ParentItem = @ParentDesc AND FirstDescriptor = Description1 AND SecondDescriptor = @Description2 AND ThirdDescriptor = Descriptor3;") 

應該

SQL.ExecQuery("SELECT TOP 1 * FROM PartsListMenu WHERE ParentItem = @ParentDesc AND FirstDescriptor = @Description1 AND SecondDescriptor = @Description2 AND ThirdDescriptor = @Description3;") 
+0

感謝您指出了這一點。改變這個簡單的錯字可以解決問題。我一直在查看這段代碼幾個小時,但我從來沒有發現過。總是有助於獲得第二套代碼。 –

+0

我花了幾個小時這個星期試圖弄清楚爲什麼Tomcat的找不到一個特定的文件,直到我終於意識到我給了它錯了名字。發生在我們所有人身上! – andreamc

0

抱歉,這個添加爲一個答案,但我不知道有足夠的評論意見。爲什麼循環,如果你只選擇Top 1?你可以檢查SQL.DataBDataT.Rows.Count看看你是否返回任何行?不確定這是什麼技術,但有時您必須先移動以獲取數據。