sql 服务器错误 = 当子查询跟在 =、!=、<、<= 、>、>= 或子查询用作表达式时,不允许这样做



我的代码有问题。

我使用此代码在SQL Server上创建视图:

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;
}

我在互联网上进行了很多搜索,但是我找不到任何解决方案,您可以帮助我解决此问题吗?

如果您想要fullname,您可以这样做,无需内部查询

 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时的行为。

最新更新