调试Subsonic Select Query

时间:2009-10-05 16:19:22

标签: subsonic

我有一个没有返回任何值的Subsonic查询。我认为问题出在我的where子句中,虽然我不确定原因。

我真正想要的是一种调试查询的方法,以查看实际上被Subsonic吐出的SQL。我知道有一种方法可以使用带有Inspect()的Query对象来执行此操作,但我正在使用Select对象(或者也可能使用SQLQuerys),因为我需要连接。亚音速选择是否有任何inspect()类型选项?

这是我正在使用的代码:

Dim qry As New [Select]("Contract_NO")
  qry.From(<table1>.Schema)
  qry.InnerJoin(<table2>.<table2columnA>, <table1>.<table1columnA)
  qry.Where(NonInfoleaseLessor.Columns.LessorCode).Like("mystring")

如果我注释掉了哪一行,我会得到完整的结果列表。它不喜欢它的东西,但是我使用where子句在数据库中手动运行查询,并且它可以工作。我怎么能看出有什么区别?

4 个答案:

答案 0 :(得分:3)

您的查询的问题是您应该使用Contains(“mystring”)而不是Like(“mystring”)。

查看SQL的最佳方法是使用查询的BuildSqlStatement()方法。

答案 1 :(得分:1)

使用[a]探查器查看实际对数据库执行的SQL。

亚当发现:

.Like("mystring")

最有可能是

.Like("%mystring%")

答案 2 :(得分:1)

请尝试使用Like("%mystring%")

答案 3 :(得分:0)

它可能与您选择的子句或您正在使用的列名有关。 Subsonic有几个列名字段

OBJECT.xyzColumn

OBJECT.xyzColumn.QualifiedName

OBJECT.Columns.xyz

我过去不得不玩这些以获得我想要的价值。