我正在尝试实现一个想法,在数据库中有两个 sql 表。
具有字段的表和Info
具有字段的Nationality
另一个表。Exclusion
Keyword
`Info.Nationality` `Exclusion.Keyword`
|British| |France|
|resteraunt de France| |Spanish|
|German|
|Flag Italian|
|Spanish rice|
|Italian pasta
|Irish beef|
在我的 Web 应用程序中,我正在创建一个GridView4
并通过 aDataTable
并使用 SQL 命令SqlDataAdapter
填充它:GridView4
SELECT DISTINCT Info.Nationality WHERE Exclusion.Keyword NOT LIKE '%Spanish%'
该 SQL 语句检索所有Info.Nationality
不包含单词 spanish 的不同记录。
我目前正在做的是在 vb.net 中的 web 应用程序中添加两个不同GridViews
的,每个都有每个表的数据,这意味着GridView2
hasDISTINCT Info.Nationality
和GridView3
hasExclusion.Keyword
然后添加另一个 GridView4
以显示上述结果SQL command
。
这个想法是检索所有不同的记录,Info.Nationlity
这些记录没有被 中的关键字约束抑制Exclusion.keyword
。因此,从上面提到的 Sql 命令中,GridView4
将检索所有不包含“Spanish”一词的记录。
我在一个嵌套循环中执行所有这些操作,在第一个循环中,它从egfor
中获取每条记录(一个接一个),并将其与第二个 for 循环进行比较,直到该循环结束。Info.Nationality
for each row As DataRow in Me.GridView2.Rows()
Exclusion.Keyword
For i=0 To Gridview3 - 1
问题是在那个 sql 语句中我必须明确指定要比较的单词。我尝试Exclusion.Keyword
在 a 中添加记录,String
然后将Spanish
in 之间的关键字替换为isNOT LIKE
的名称,然后将名称分配为参数。但是,这不起作用,它仅与字符串中的最后一条记录进行比较并忽略第一条记录。String
Keywords
cmd.parameter.addwithvalue(@String, Keywords)
所有这一切背后的想法是显示其中不包含关键字 in 的Info.Nationality
所有记录。GridView4
Exclusion.Keyword
有没有更简单或更有效的方法来做到这一点?我在想一个,Inner Join with a Like command
但这不是我的问题。我的问题是如何将每条记录与其中的Info.Nationlity
所有记录一一进行比较Exclusion.keyword
,然后检索不匹配的记录并丢弃匹配的记录。
那么Gridview4
我如何编辑记录而不反映这些更改或影响,Info.Nationality
而只影响Inserting to Exclusion.Keyword
更改。
通过在我的asp.net网络应用程序中添加ToString()
后解决Text
,我尝试了这个,但没有用:(已解决)
`SELECT DISTINCT Nationality
FROM Info Where NOT EXISTS(SELECT * FROM Exclusion WHERE Info.Nationality LIKE '%' + @GridView +'%')`
`cmd.parameters.AddwithValue("@GridView", GridView3.Rows(i).Cells(0).Text.ToString())`
GridView3
这里有Exclusion.Keywords
数据。
非常感谢您对此提出的建议和想法。