更改DataSet Designer参数推断

时间:2011-12-10 18:05:00

标签: visual-studio visual-studio-2010 dataset

我使用VS2010 DataSet设计器使用类似于此的可选参数进行一些选择查询:

SELECT CustomerID, FirstName, JoinDate, etc
FROM tblCustomers
WHERE (
    (@CustomerID IS NULL OR CustomerID = @CustomerID) AND
    (@FirstName IS NULL OR FirstName = @FirstName) AND
    (@JoinedBefore IS NULL OR JoinDate < @JoinedBefore) AND
    (@JoinedAfter IS NULL OR JoinDate > @JoinedAfter) AND
    .. etc ..
)

对这些属性数据类型的推断并允许DB null几乎总是错误的。我最终为日期时间设置了字符串类型,反之亦然。超过一半的字段始终标记为非空。

这显然对我的疑问造成了严重破坏。我可以手动更改这些推断,但每次我必须更新TableAdapter时,它会将它们全部重置为它认为最好的!任何人都知道如何a)得到正确的推论,或b)以永久的方式覆盖它们?

1 个答案:

答案 0 :(得分:0)

似乎VS根据查询中第一次出现的参数推断出数据类型。因为我把我的@Parater IS NULL或者......首先,这让设计师感到困惑并导致它在很多时候推断错误。我交换了查询的顺序,现在它完全推断出来了:

SELECT CustomerID, FirstName, JoinDate, etc
FROM tblCustomers
WHERE (
    (CustomerID = @CustomerID OR @CustomerID IS NULL AND
    (FirstName = @FirstName OR @FirstName IS NULL) AND
    (JoinDate < @JoinedBefore OR @JoinedBefore IS NULL) AND
    (JoinDate > @JoinedAfter OR @JoinedAfter IS NULL) AND
    .. etc ..
)