Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的数据集显示第一个查询的列,而不显示其他查询的列?_C#_Asp.net_Tsql_Ado.net_Rdlc - Fatal编程技术网

C# 为什么我的数据集显示第一个查询的列,而不显示其他查询的列?

C# 为什么我的数据集显示第一个查询的列,而不显示其他查询的列?,c#,asp.net,tsql,ado.net,rdlc,C#,Asp.net,Tsql,Ado.net,Rdlc,为什么我的.xsd数据集显示1个查询的列,而不显示其他2个查询 我在存储过程中使用了3个查询,在RDLC报告的数据集中也使用了3个查询,但它只显示了第一个查询的列,而不显示其他查询的列 我的SP: create PROC [dbo].[SelectContractorsBio] @GC_ID INT AS BEGIN Select c.Name, c.FatherName, c.Farm, cat.Name 'Cat', c.CN

为什么我的.xsd数据集显示1个查询的列,而不显示其他2个查询

我在存储过程中使用了3个查询,在RDLC报告的数据集中也使用了3个查询,但它只显示了第一个查询的列,而不显示其他查询的列

我的SP:

create PROC  [dbo].[SelectContractorsBio]

    @GC_ID INT

AS
BEGIN    



                   Select c.Name, c.FatherName, c.Farm, cat.Name 'Cat', c.CNIC, c.EnlistmentNo, c.ContactNo,
                   CONVERT(date,c.RegistrationDate,106) as RegistrationDate, c.Email, pcat.Name 'PECCat', c.PECCategoryNo 'PECLicenseNo',
                   c.PECReceiptNo, c.ExpectedDate, c.CNWEnlistmentNo, c.NTN, cr.BankName, cr.BankCode, cr.BankDraftNo, 
                   cat.Fee, cat.Amount, c.Address, Case when c.HasTaxExempted = 1 then 'Yes' else 'No' end
                   from Contractors c
                   Inner Join Category cat
                   ON Cat.ID= c.ContractorType_ID
                   Inner Join ContractorRenewal cr
                   ON cr.Contractor_ID= c.ContractorID
                   Inner Join PecCategories pcat
                   ON pcat.ID= c.PECCategoryID


                   Select Documents.DocumentID, Documents.Name from DocumentContractor dc
                   Inner Join Documents
                   ON Documents.DocumentID= dc.Doc_ID
                   where dc.Contractor_ID= @GC_ID

                   Select sc.SpecializationID, sc.Name 'SpecializationName', sc.SpecializationCode, spc.Contractor_ID from SpecializationCodes sc
                   INNER JOIN SpecializationCodeContractor spc
                   ON sc.SpecializationID= spc.SP_ID


END
数据集:


存储过程不能输出多个结果集,因此只能从第一个查询中获取结果

如果您需要所有查询中的数据,则需要将其转换为一个查询

<!-- language: lang-sql -->
SELECT c.Name
      ,c.FatherName
      ,c.Farm
      ,cat.Name AS 'Cat'
      ,c.CNIC
      ,c.EnlistmentNo
      ,c.ContactNo
      ,CONVERT(DATE,c.RegistrationDate,106) AS RegistrationDate
      ,c.Email
      ,pcat.Name AS 'PECCat'
      ,c.PECCategoryNo AS 'PECLicenseNo'
      ,c.PECReceiptNo
      ,c.ExpectedDate
      ,c.CNWEnlistmentNo
      ,c.NTN
      ,cr.BankName
      ,cr.BankCode
      ,cr.BankDraftNo
      ,cat.Fee
      ,cat.Amount
      ,c.Address
      ,CASE WHEN c.HasTaxExempted = 1
            THEN 'Yes'
            ELSE 'No'
        END AS 'HasTaxExempted'
      ,doc.DocumentId
      ,doc.[Name] AS DocumentName
      ,sc.SpecializationID
      ,sc.[Name] AS SpecializationName
      ,sc.SpecializationCode
      ,c.ContractorID
  FROM Contractors AS c
 INNER JOIN [Category] AS cat
         ON cat.ID = c.ContractorType_ID
 INNER JOIN ContractorRenewal AS cr
         ON cr.Contractor_ID = c.ContractorID
 INNER JOIN PecCategories AS pcat
         ON pcat.ID = c.PECCategoryID
 -- Using LEFT OUTER JOIN, in case you have no data
 LEFT OUTER JOIN DocumentContractor AS dc
         ON dc.Contractor_ID = c.ContractorID
 INNER JOIN Documents AS doc
         ON doc.DocumentId = dc.Doc_ID
 -- Using LEFT OUTER JOIN, in case you have no data
 LEFT OUTER JOIN SpecializationCodeContractor AS scc
         ON scc.Contractor_ID = c.ContractorId
 INNER JOIN SpecializationCodes AS sc
         ON sc.SpecializationID = scc.SP_ID;

您从第一部分(大的一个连接第一个选择)得到结果,从其他两个选择中没有得到任何数据?当您执行SP时,它是否返回3个结果集?如果不是,则由于连接条件或记录不可用,最后2个select查询不会获取结果。