C# 在gridview中显示数据的SQL查询
我有一个网格视图,在页面加载期间显示SQL Server数据库中的数据。My gridview包含以下列:C# 在gridview中显示数据的SQL查询,c#,sql,asp.net,sql-server,visual-studio,C#,Sql,Asp.net,Sql Server,Visual Studio,我有一个网格视图,在页面加载期间显示SQL Server数据库中的数据。My gridview包含以下列: AssetType, IssuedOn, ReturnedOn 我使用了一个查询: SqlCommand cmd = new SqlCommand( "SELECT * FROM AssetRequest WHERE ReturnedOn IS NULL OR ReturnedOn ='' ORDER BY id DESC", conn); 当返回的列没有任何数据时,它
AssetType, IssuedOn, ReturnedOn
我使用了一个查询:
SqlCommand cmd = new SqlCommand(
"SELECT * FROM AssetRequest WHERE ReturnedOn IS NULL OR ReturnedOn ='' ORDER BY id DESC",
conn);
当返回的列没有任何数据时,它将在gridview中显示来自SQL Server的数据
新查询必须满足这些条件
当Assetype=笔记本电脑或台式机且IssuedOn不为空时,不应显示记录。
但如果AssetType=笔记本电脑或台式机且IssuedOn为空,则应显示记录。
如果AssetType=anything且Returnedon不为空,则不应在gridview中显示该记录。
我希望这会有帮助
select *
from AssetRequest
where (ReturnedOn is null or ReturnedOn ='' )
and Assetype not in ('Laptop','Desktop')
union
select *
from AssetRequest
where Assetype in ('Laptop','Desktop') and IssuedOn is null or IssuedOn= ''
根据您的上述条件,这应符合您的要求:
select *
from AssetRequest
where
((IssuedOn IS NULL OR IssuedOn = '') AND (Assetype IN ('Laptop', 'Desktop')) OR
(ReturnedOn IS NULL OR ReturnedOn = '')
我希望这个问题能解决你的问题
SELECT *
FROM AssetRequest
WHERE (AssetType IN ('Laptop', 'Desktop') AND (IssuedOn IS NULL OR IssuedOn = '') AND (ReturnedOn IS NULL OR ReturnedOn = ''))
OR (AssetType NOT IN ('Laptop', 'Desktop') AND (ReturnedOn IS NULL OR ReturnedOn = ''))
我不确定我是否理解,您发布的SQL查询没有这样做:当AssetType列有数据,IssuedOn列有数据,ReturnedOn列没有任何数据时,它将在gridview中显示SQL数据。。您需要应用的过滤器是什么?我需要一个查询,当AssetType Laptop或Desktop and IssuedOn=any data and ReturnedOn=null时显示数据。只需将这些条件添加到sql查询中:从AssetRequest中选择*其中ReturnedOn为null或ReturnedOn=且IssuedOn不为null且AssetType不在“Laptop”中,“桌面”按id排序DESC@TWP,很抱歉,我想我没有说清楚,查询必须满足这些条件,1当Assetype=笔记本电脑或台式机且IssuedOn不为空时,它不应显示记录。2但如果Assetype=笔记本电脑或台式机且IssuedOn为空,则应显示记录。3如果AssetType=anything且Returnedon不为空,则不应显示该记录。谢谢。我试过密码。但是gridview中没有显示数据,它返回空。在SSMS中使用此查询时,它是否显示您希望的记录?只是为了确保查询返回正确的结果,请在两个并集部分的OR条件周围放上括号:ReturnedOn为null或ReturnedOn=现在我收到一个错误,数据类型文本不能用作并集、相交或除运算符的操作数,因为它不是comparable@santosh您正在使用文本数据类型,而是使用nvarcharmaxThanks。但当Assettype和Issuedon列包含数据时,它不会隐藏记录。