Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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# 在gridview中显示数据的SQL查询_C#_Sql_Asp.net_Sql Server_Visual Studio - Fatal编程技术网

C# 在gridview中显示数据的SQL查询

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); 当返回的列没有任何数据时,它

我有一个网格视图,在页面加载期间显示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);
当返回的列没有任何数据时,它将在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列包含数据时,它不会隐藏记录。