确定字符串索引vb.net

时间:2014-11-20 14:47:10

标签: vb.net string

我有这个字符串:

TABLE1 JOIN TABLE2

我有这个数组:

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

现在,我想确定JOIN的索引。使用IndexOf我可以简单地获取索引,但如果我有这个字符串:

TABLE1 LEFT JOIN TABLE2

然后我得到了错误的索引。当然,我最后可以把JOIN放在数组中,但这不是一个解决方案。

我需要的是完全匹配。我的意思是我遍历数组,如果有匹配,我得到字符串中的索引。但在这种情况下,JOIN将是匹配而不是LEFT JOIN。这导致索引不正确。

我怎么能让它起作用?

1 个答案:

答案 0 :(得分:1)

JOIN和INNER JOIN是多余的。你真的只需要一个像这样的数组:

  

{" INNER JOIN"," LEFT JOIN"," RIGHT JOIN"}

一旦你有了这个,你就会注意到你总是使用单词join,所以你可以改变你的代码来提供那个部分,只查找数组中的第一部分:

  

{" INNER"," LEFT"," RIGHT"}

此时,您的索引查找变得更加简单。虽然我们在这里,但为了完整性,我们应该添加最终的连接类型:

  

{&#34; INNER&#34;,&#34; LEFT&#34;,&#34; RIGHT&#34;,&#34; FULL&#34;,&#34; CROSS&#34;} < / p>

当然,这假设您可以控制您正在查看的SQL代码。如果你没有,那么写连接的方法有很多种不同的组合,这也可能涉及使用&#34; OUTER&#34;关键字,甚至可能不使用&#34; JOIN&#34;完全关键字(A,B连接语法需要已经死掉)。

为了它的价值,我几乎从不使用RIGHT或CROSS加入。相反,每个右连接都可以重写为左连接,而交叉连接只有一些非常专业的用途。但我确实发现FULL JOIN有时非常方便。

出于安全原因,我也担心这一点。您正在查看的SQL字符串操作类型往往会导致代码导致可怕的,广泛的SQL注入漏洞。你可能已经解释了这个问题,如果有的话,对你有好处,但是我经常看到这种方式至少没有提到它。如果您知道不了解sql注入,则需要停止使用.Net字符串构建sql代码,直到您理解为止。