簡體   English   中英

確定字符串索引vb.net

[英]determine string index vb.net

我有這個字符串:

TABLE1 JOIN TABLE2

我有這個數組:

Private _Joins() As String = {"JOIN", "INNER JOIN", "LEFT JOIN", "RIGHT JOIN"}

現在,我想確定JOIN的索引。 使用IndexOf,我可以簡單地獲取索引,但是如果我有以下字符串:

TABLE1 LEFT JOIN TABLE2

然后我得到了錯誤的索引。 當然,我可以在數組末尾加入JOIN,但這不是解決方案。

我需要的是精確匹配。 我的意思是我遍歷數組,如果有匹配項,我將在字符串中獲取索引。 但是在這種情況下,JOIN將是一個匹配項,而不是LEFT JOIN。 導致索引不正確。

我該如何運作?

JOIN和INNER JOIN是多余的。 您真的只需要一個像這樣的數組:

{“內部聯接”,“左聯接”,“右聯接”}

有了這些,您會注意到您總是使用join一詞,因此您可以更改代碼以始終提供該部分,而僅在數組中查找第一個部分,如下所示:

{“內”,“左”,“右”}

此時,索引查找變得更加簡單。 在這里,為了完整性,我們應該添加最終的聯接類型:

{“內”,“左”,“右”,“滿”,“交叉”}

當然,這假設您對所要查看的SQL代碼具有一定程度的控制權。 如果不這樣做,寫聯接的方式有很多不同的組合,這可能還涉及到使用“ OUTER”關鍵字,或者甚至根本不使用“ JOIN”關鍵字(即A,B連接語法需要已經死了)。

對於它的價值,我幾乎從不使用RIGHT或CROSS連接。 每個右聯接都可以改寫為左聯接,而交叉聯接僅具有一些非常特殊的用途。 但是我確實發現FULL JOIN有時很方便。

出於安全原因,我也對此感到擔憂。 您正在查看的這種SQL字符串操作傾向於使自己適合於代碼,這些代碼將導致可怕的,廣泛開放的sql注入漏洞。 您可能已經對此做出了解釋,如果這樣的話,對您有好處,但是我經常以這種方式看到它,至少沒有提及它。 如果您不了解sql注入,則需要停止使用.Net字符串構建sql代碼,直到您了解為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM