查询在SQL Server中成功执行但在.NET中不成功
我写了一个查询,它在.NET应用程序和SQL Server中都能正常工作。查询在SQL Server中成功执行但在.NET中不成功
但是,当我用广泛的参数进行测试时,我发现对于那个特殊情况,它没有在.NET应用程序中显示任何内容,但在SQL Server中显示结果。
我试过谷歌,没有结果有点奇怪。所以,我在这里问。
这是我的查询:
SELECT DISTINCT
tblCustomers.customerID AS Customer#,
tblCustomers.firstName + ' ' + tblCustomers.surname AS Name,
tblCustomers.street AS Street,
tblCustomers.suburb AS Suburb,
tblCustomers.postCode AS Postcode,
tblCustomers.state AS State,
tblCustomers.country AS Country,
tblCustomers.phone AS [Phone No.],
tblCustomers.fax AS Fax,
tblCustomers.mobilePhone AS [Mobile Phone],
tblCustomers.email AS [E-mail]
FROM
tblCustomers
INNER JOIN
tblProduct_Backorder ON tblCustomers.customerID = tblProduct_Backorder.customerId
WHERE
(tblCustomers.customerID IN
(SELECT
customerId
FROM
tblProduct_Backorder AS tblProduct_Backorder_1
WHERE
(productId IN
(SELECT
productID
FROM
tblProducts
WHERE
(skuCode = 76761)
)
)
)
)
这查询不工作skuCode = 76761
,但这一工作在SQL Server中的罚款。
谢谢。
你真的没有足够的信息给我们,甚至开始猜测导致问题的原因。在平均时间试试这个,而不是你的查询:
SELECT c.customerID AS [Customer#],
c.firstName + ' ' + tblCustomers.surname AS Name,
c.street AS Street,
c.suburb AS Suburb,
c.postCode AS Postcode,
c.state AS State,
c.country AS Country,
c.phone AS [Phone No.],
c.fax AS Fax,
c.mobilePhone AS [Mobile Phone],
c.email AS [E-mail]
FROM dbo.tblCustomers c
WHERE EXISTS (SELECT 1
FROM dbo.tblProduct_Backorder b
JOIN dbo.tblProduct p
ON b.productId = p.productId
WHERE p.skuCode = 76761
AND b.customerId = c.customerId);
如果我正确理解你的表的关系,它会同时做少了很多的工作产生相同的结果。
对于你原来的问题,你也应该发布.net代码。另外,“没有结果”是什么意思?一个空的结果?超时?一个错误?
我尽可能提供信息。我会尝试这个查询。谢谢你的帮助。 – 2013-02-12 02:38:04
我试过这个,并给出相同的结果。你能告诉我这个查询是如何工作的吗?现在,我将尝试使用.net应用程序。 – 2013-02-12 02:40:27
我在asp.net的查询生成器中试过了你的查询,并发现了一些奇怪的行为。当我替换直接值(比如说skuCode = 76761)时,它对两个查询都正常工作,但是在使用参数(例如skuCode = @s和@ s = 76761)尝试时,那么您的查询将返回带NULL值的结果,而我的查询返回无结果。 – 2013-02-12 02:55:12
我在xQbert的评论帮助下找到了解决方案。我花了很多时间,并且看到了SQL Profiler中如何执行查询。表tblProduts中的skuCode是nvarchar(6),表tblProduct_BackOrder是其整数。所以,我使用Convert()函数将其转换为相同参数的Integer。
我们这里没有足够的信息来真正回答。你是否连接到不同的数据库?你真的执行了查询吗?你使用什么代码? Blah blah – 2013-02-12 02:09:49
好的,我为此道歉。我只是将我的Gridview与SQL数据源连接起来,并且我提到了参数化查询本身。所以,我没有写任何代码来连接数据库。 – 2013-02-12 02:20:33
您的ASP.net代码不正确或连接字符串错误。巧合的是,你没有向我们展示过这些东西。 – RBarryYoung 2013-02-12 03:30:43