2011-01-06 152 views
0

我有一個C#控制檯應用程序,其簡單地從一個SQL Server 2008數據庫,並輸出到一個Excel工作表的信息。解析姓名爲第一名字和姓氏 - LINQ到實體

我正在使用Linq to Entities。

這裏是一個代碼片段只是爲了演示如何將數據從數據庫輸出到Excel工作表。

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

我的問題是,在我的數據庫中,用戶名存儲爲他/她的全名,例如,然而,「約翰史密斯」在Excel表格中分爲名字和姓氏。

有沒有辦法將用戶名解析爲名和姓?

由於提前,如果需要更多的信息,只問:)

+0

你有沒有辦法花時間來正確構建數據庫? – 2011-01-06 12:41:12

回答

1

解決這個問題是,他們是複雜的。所以,簡而言之,不,你不能這麼做,因爲基本上不可能知道全名是姓氏和名字。但是你可以假設最後一部分總是姓(即使在很多情況下情況並非如此),並將字符串分割爲空格。

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

您可以用空格分割字符串起來,並採取第一個字作爲名字,其餘字作爲姓氏。

+0

這可能是最好的主意,因爲它保留了來自數據庫的所有信息。 – MvcCmsJon 2011-01-25 15:26:41

2

如果您確定第一名稱不包含可以使用string.Split方法

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

我會試試這個。感謝您的解釋:) – 109221793 2011-01-06 12:24:51

0

是很困難的任務中的任何空間。你應該分析你的所有數據。 爲簡單的情況下,你可以通過「」和名字設置第一個字,姓氏設置第二個世界拆分文本。 但是,如果你有其他的情況下,你應該用的東西是其他名字的方式

1

您可以使用樸素的方法簡單地拆分最後一個單詞。

然而,這並不能在不瞭解語言的情況下可靠地解決。 「弗雷德迪科斯特洛」實際上有一個名字「迪科斯特洛」,與「克勞斯馮特勞普」相同。