C# 无法在VS2013报表设计器中使用SQL Server 2012中的存储过程,是否始终返回空白?

C# 无法在VS2013报表设计器中使用SQL Server 2012中的存储过程,是否始终返回空白?,c#,sql-server,visual-studio,crystal-reports,C#,Sql Server,Visual Studio,Crystal Reports,我正在尝试在C应用程序中创建参数化报表。当我转到数据源设计器时,我可以选择preview,并可以很好地看到适当的数据。但是,当我尝试使用存储过程创建报告时,报告最终为空,就好像没有返回任何行一样 如果我创建一个全新的报告,没有参数,它仍然返回空白。然而,我的观点和桌子拉得很好 有什么想法吗 编辑 代码尝试1 ALTER PROCEDURE [dbo].[getReportData] @minimumDate DATE = '1900-01-01', @maximumDate DATE = '

我正在尝试在C应用程序中创建参数化报表。当我转到数据源设计器时,我可以选择preview,并可以很好地看到适当的数据。但是,当我尝试使用存储过程创建报告时,报告最终为空,就好像没有返回任何行一样

如果我创建一个全新的报告,没有参数,它仍然返回空白。然而,我的观点和桌子拉得很好

有什么想法吗

编辑

代码尝试1

ALTER PROCEDURE [dbo].[getReportData] 
@minimumDate DATE = '1900-01-01', 
@maximumDate DATE = '2100-12-31',
@PO INT = null,
@glCode INT = null,
@merchant INT = null,
@employee INT = null
AS
BEGIN
SET NOCOUNT ON;

SELECT  dbo.transactions.date_purchased, 
        dbo.transactions.description, 
        dbo.transactions.purchase_order_number, 
        dbo.transaction_codes.transaction_code, 
        dbo.merchants.merchant, 
        dbo.transactions.amount, 
        dbo.employees.first_name + ' ' + dbo.employees.last_name AS employee
FROM    dbo.transactions 
      INNER JOIN dbo.transaction_codes ON dbo.transactions.accounting_code = dbo.transaction_codes.id    
      INNER JOIN dbo.merchants ON dbo.transactions.merchant_id = dbo.merchants.id 
      INNER JOIN dbo.employees ON dbo.transactions.employee_id = dbo.employees.id
WHERE   
        (dbo.transactions.date_purchased BETWEEN @minimumDate AND @maximumDate) AND
        (@employee IS NULL or dbo.transactions.employee_id IN(@employee)) AND
        (@po is null or dbo.transactions.purchase_order_number = @PO) AND (@merchant is null or dbo.transactions.merchant_id IN(@merchant)) AND
        (@glCode is null or dbo.transactions.accounting_code IN(@glCode))




END
无参数

CREATE PROCEDURE getData
AS
BEGIN
SET NOCOUNT ON;

    SELECT  dbo.transactions.date_purchased, 
        dbo.transactions.description, 
        dbo.transactions.purchase_order_number, 
        dbo.transaction_codes.transaction_code, 
        dbo.merchants.merchant, 
        dbo.transactions.amount, 
        dbo.employees.first_name + ' ' + dbo.employees.last_name AS employee
FROM    dbo.transactions INNER JOIN
        dbo.transaction_codes ON dbo.transactions.accounting_code = dbo.transaction_codes.id INNER JOIN
        dbo.merchants ON dbo.transactions.merchant_id = dbo.merchants.id INNER JOIN
        dbo.employees ON dbo.transactions.employee_id = dbo.employees.id
END
GO

接下来我要尝试的是一个带有嵌入式查询的报告,以查看是否返回了数据。可能不会返回任何内容,但在过程中可能会有一些内容为您单击。

如果您正在使用任何存储过程,是否可以显示存储过程和隐藏的代码..?我已使用我尝试过的两个不同存储过程对其进行了更新。几个问题..为什么要硬编码这两行@minimumDate='1900-01-01',@maximumDate DATE='2100-12-31',您是否熟悉GetDate方法?您是否也在查询分析器中运行此查询?我没有在查询分析器中运行它,但当我从SMMS中运行存储过程时,它工作正常。此外,为了简单起见,它们被硬编码为默认值。如果我们有未来的日期购买,我基本上希望整个日期范围都可用。听起来这是分配数据源和/或连接到报表设计器本身的方式的问题。。