機房收費系統之組合查詢的傳參問題

2021-06-03 16:06:04 字數 1852 閱讀 5384

我的機房收費系統中,我研究最多的就是這個組合查詢了,因為第一次做的時候,沒有做出來這樣的組合查詢,而是省時做了點簡單的查詢。這篇我想說一下我的傳參問題。 

最開始的時候,我用的是sql語句傳參的方式寫的,sql語句是這樣寫的(其中basicstudentinfo.filename=cmbfieldname.selectindex,即實現了查詢欄位與下拉框選項的index動態組合):

"select * from cardinfo,studentinfowhere crdstudentno=stdstudentno and @filename1" & _                        basicstudnetinfo1.stroperator & "@value1 " & " " _

& basicstudnetinfo1.strrelation & " " & "@filename2" & basicstudentinfo2.stroperator & "@value2" & " " _

& basicstudentinfo2.strrelation & " " & "@filename3" & basicstudentinfo3.stroperator & "@value3"

其中basicstudentinfo是我定義的類,在我傳參的時候,我將@filename傳入的是basicstudentinfo.filename.tostring型別是char型。可是問題出來了,就是查不出來結果。然後我將@filename引數去掉,直接採用的拼接字串,直接寫上basicstudentinfo.filename.tostring,然後就出來結果了。剛開始我怎麼也想不出來結果,然後就先放著了。

"select *from cardinfo,studentinfo where crdstudentno=stdstudentno and " & _ basicstudnetinfo1.fieldname.tostring & basicstudnetinfo1.stroperator & "@value1 " & " " _

& basicstudnetinfo1.strrelation & " " & basicstudentinfo2.fieldname.tostring & basicstudentinfo2.stroperator & "@value2" & " " _

& basicstudentinfo2.strrelation & " " & basicstudentinfo3.fieldname.tostring & basicstudentinfo3.stroperator & "@value3"

第二天看英語的時候,突然想到,這個表裡的欄位名寫在sql語句裡面應該是stdstudentno之類的詞語,可是如果像我這樣傳參的話,那麼查詢的欄位名就會變成'stdstudentno』,也就是'stdstudentno'='卡號'所以造成了我查不出來結果這件事情。

印象中聽過楊元說將表名作為引數傳入,那麼就會碰到和這個一樣的問題。然後向他請教了一下。

解決方法是這樣的,儲存過程中接收了這些引數後,然後在儲存過程中定義乙個字元型別的臨時變數,在儲存過程中拼接這些字串,如果這樣的話,那麼四個組合查詢就可以都用這乙個儲存過程了,那就是在傳參的時候,多傳乙個表名進來就可以了。

上面就是我在組合查詢的過程中遇到的傳參問題。

總的來說,我的組合查詢中出去介面空值判斷的地方,我只在判斷relation除用到了選擇判斷語句,通過大話中的小例子,除去選擇判斷語句有利於擴充套件,所以在遇到選擇判斷語句時,我總是先想辦法避免,想不出來的時候再先寫上去。

我十分信奉一句話,每個人一生吃的苦的和是一定的。所以每想到乙個簡單的方法,那麼就會遇到別的問題,例如在只有乙個條件的時候,我必須去查三個條件的and關係。所以沒有哪種方法是簡單的,只有最適合的。

機房收費系統之 組合查詢

總是把它想象的很難。所以才會畏懼。其實只要邏輯清晰,就好了。private function fieldname strfieldname as string as string 將程式的字對應為資料庫 select case strfieldname case 卡號 fieldname cardn...

機房收費系統之組合查詢

前言 組合查詢是機房的另乙個重點 涉及到的窗體有 學生基本資訊維護 學生上機資訊統計 操作員工作記錄。邏輯 問題及重點 1.呼叫函式的目的是使得漢字與表中字段進行轉化 例 sql語句的姓名應該是student name,而 中新增的是文字 combo3.additem 姓名 通過函式可以將兩者進行轉...

機房收費系統 組合查詢

機房收費系統在磕磕絆絆中過來了,這期間遇到問題,解決問題,最後收穫的特別多,在敲得過程中,不斷的學習新知識,應該說組合查詢是收費系統的乙個小難點了吧,起初我是真的不知道該從 下手,總是有種剪不斷理還亂的感覺,分析分析就繞進去了,我總是把問題想的很複雜,其實只要一句 語句,一切都解決了,根本用不到好多...