我的代码有问题。
我使用此代码在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时的行为。