将全名解析为SQL Server中的名字和姓氏 - Linq to Entities

时间:2011-01-06 12:18:13

标签: c# sql

我有一个C#控制台应用程序,它只是从Sql Server 2008数据库中提取信息并将其输出到Excel工作表。

我正在使用Linq to Entities。

以下是代码的代码段,用于演示如何将数据从数据库输出到Excel工作表。

cell = dataRow.CreateCell(colPosition++); // Title Group ID
cell.SetCellValue(currentTitle.TitleGroupID);

我的问题是,在我的数据库中,用户名称存储为他/她的全名,例如然而,“约翰史密斯”在excel表中将其分为名字和姓氏。

有没有办法将用户名解析为名字和姓氏?

提前致谢,如果需要更多信息,请问:)

5 个答案:

答案 0 :(得分:2)

如果您确定名字不包含任何空格,则可以使用string.Split方法

string [] Name = fullNameString.Split(" ");
string firstname = Name[0];
string lastname = Name[1];

答案 1 :(得分:1)

您可以按空格分割字符串,并将第一个单词作为名字,其余单词作为姓氏。

答案 2 :(得分:1)

事情的名称是它们很复杂。所以简而言之,不能不这样做,因为基本上不可能知道全名的姓和名。但你可以假设最后一部分始终是姓氏(即使在许多情况下并非如此)并将字符串拆分为空格。

string [] Name = fullNameString.Split(" ");
string firstname = Name.Take(Name.Length - 1);
string lastname = Name.Last();

答案 3 :(得分:1)

你可以使用简单的方法来简单地将最后一个词分开。

然而,如果不了解更多语言,这不是可以可靠解决的问题。 “Fred Di Costello”的名字实际上是“Di Costello”,与“Kraus Von Trappe”相同。

答案 4 :(得分:0)

这是非常困难的任务。您应该分析所有数据。 对于简单的情况,你可以用“”和第一个名字设置第一个单词,名字设置第二个世界来分割文本。 但如果你有其他情况,你应该用其他方式解决它