繁体   English   中英

sql server error =当子查询跟随=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做

[英]sql server error = This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression

我的代码有问题。

我使用此代码在sql服务器上创建视图:

SELECT
(SELECT FirstNameD + ' ' + LastNameD AS Expr1
 FROM   dbo.UsersDatas) AS UsersFullName,
 PhoneNumberD, EmailAddressD, UserNameD
FROM dbo.UsersDatas AS UsersDatas_1   

并在我的C#应用​​程序中使用此视图。

在使用c#应用程序设置两行之后,我从Visual Studio中收到以下错误消息:

System.Data.Entity.Core.EntityCommandExecutionException:'从商店提供者的数据读取器读取时发生错误。 有关详细信息,请参见内部异常。

我的C#代码是:

private void SetDataGridViewDatasMethod()
{
    var Query = from MU in DataBaseDataD.VW_UsersDatasView
    select MU;
    var UsersDataD = Query.ToList();
    UsersInfoDataGridView.ItemsSource = UsersDataD;
}

并且我在互联网上搜索了很多相关信息,但是找不到任何解决方案,您能帮我解决这个问题吗?

如果要全名,可以这样,不需要内部查询

 SELECT
FirstNameD + ' ' + LastNameD  AS UsersFullName,
 PhoneNumberD, EmailAddressD, UserNameD
FROM dbo.UsersDatas 

正如Shantanu所说-不需要内部查询。 而且,您可能不希望使用“ +”运算符来使用CONCAT

SELECT CONCAT(FirstNameD, ' ', LastNameD)  AS UsersFullName,
 PhoneNumberD, EmailAddressD, UserNameD
FROM dbo.UsersDatas 

或者,如果您使用的是SQL Server 2017,则也可以使用CONCAT_WS

SELECT CONCAT_WS(' ', FirstNameD, LastNameD)  AS UsersFullName,
 PhoneNumberD, EmailAddressD, UserNameD
FROM dbo.UsersDatas

+和CONCAT之间的主要区别在于,当输入之一为NULL时,它们的行为方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM