2008-12-03 13 views
0

我在Visual Studio中使用表格适配器来查询我的SQL Server 2005数据库中的存储过程。当我通过我的网站应用程序拨打电话时,它什么也不返回。当我通过SQL Server管理器进行相同的调用时,它会返回预期的数据。为什么Visual Studio的表适配器查询不能像它所表示的存储过程那样返回相同的数据?

我在调用适配器的getData方法时调用了一个断点,并查看了所有参数及其值,并将其与来自服务器管理的查询进行匹配以确保。我送以下查询:

getData(string, date, date, int, int?, int?, string, int?, string) 

进一步

getData('0000-rtg', '1/1/2007', '3/12/2008', 0, null, null, null, null, null) 

我想我不知道是否Visual Studio中做一些事情与null的它试图将查询发送到SQL Server之前。如果没有,我该如何解决这个问题?

编辑: 所有这些值都是通过变量传递的,我只是在那个断点处输入了那些变量的内容。

回答

1

使用Sql Profiler查看sql发送到sql server的实际外观。这帮了我很多次。

1

日期需要在SQL中引号,否则它们不起作用。

0

Visual Studio可以很好笑的查询参数。确保每个变量具有正确的长度和类型。例如,我在查询中使用了多个日期参数。每次我编辑查询时,Visual Studio都会自动检测日期参数并将变量限制为7的长度。我将日期以“9/12/2009”的形式传递,该日期被截断为“9/12/20”所以我需要手动将我的日期参数更改为10的长度。

相关问题