我的代码有问题。
我使用此代码在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;
}
我在互联网上搜索了很多相关内容,但是找不到任何解决方案,请您帮我解决这个问题?
答案 0 :(得分:4)
如果您要全名,可以这样, 无需内部查询
SELECT
FirstNameD + ' ' + LastNameD AS UsersFullName,
PhoneNumberD, EmailAddressD, UserNameD
FROM dbo.UsersDatas
答案 1 :(得分:0)
正如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时,它们的行为方式。