【问题标题】:TableAdapter query returning null valuesTableAdapter 查询返回空值
【发布时间】:2014-09-04 02:17:40
【问题描述】:

我正在编写一个与 SQL Server 数据库通信的 C# Windows Forms 应用程序。有两个感兴趣的表,SubmissionProducer。在提交表适配器上,我有一个执行以下 T-SQL 块的查询:

SELECT S.name, S.effDate, S.dotNumber, P.name
FROM dbo.Submission S, dbo.Producer P
WHERE S.submissionId = @submissionId and S.producerId = P.producerId;

当我使用 SubmissionTableAdapter 运行此查询时,它可以正常返回前三个值,但对于 P.name 则没有。事实上,它不会从提交以外的任何其他表中返回任何值。我已经直接在 SQL Server Management Studio 中测试了查询,它工作得很好,所以数据在那里并且查询是有效的。这是怎么回事?

【问题讨论】:

    标签: c# .net visual-studio-2013


    【解决方案1】:

    我并不是真正的 SQL 连接专家,但提交表适配器尝试从 Producer 表返回值不会导致一些问题吗?为什么不做一个join语句?

    SELECT
        S.Name, S.effDate, S.dotNumber, P.Name
    FROM
        dbo.Submission s
    JOIN
        dbo.Producer P on P.producerID = S.ProducerID
    WHERE
        S.submissionId = @submissionId
    

    【讨论】:

    • 感谢您的回答,但这只是编写相同查询的不同方式。
    • 是的,但我认为连接可能会改变数据集和 sql 读取它的方式。
    【解决方案2】:

    我通过选择Submission 中的每个字段来实现此功能,然后选择其他表中我想要的字段。示例:

    SELECT S.submissionId, S.name, ..., P.name
    FROM dbo.Submission S, dbo.Producer P
    

    其中... 表示Submission 表中的其余字段。

    这很烦人也很浪费,但至少它有效。

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 2016-06-29
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多