如何創建或什麼是 功能的其中 使用使用給定的名稱作爲字符串變量 生成非註冊用戶 名邏輯SQL 2005 (如Hotmail中註冊,雅虎)函數生成非registerd用戶名
回答
您是否正在嘗試爲「用戶」記錄生成唯一的用戶名,因爲它們的真名?或電子郵件地址?這是否可以在SQL Server中進行跟蹤/存儲(您的問題不是很清楚)?通常情況下,不會爲他們創建用戶名(這是您可以用來吸引用戶註冊的優勢之一,他們可以獲得他們自己的用戶名)。
相反,您可以將電子郵件地址本身用作主鍵,無論如何它總是唯一的:用戶名字段可以爲空(允許NULL),並且只有在用戶註冊並選擇了名稱時才包含數據。
如果您想要顯示用戶名或其電子郵件地址(如果他們沒有用戶名),可以使用COALESCE或ISNULL,例如SELECT ISNULL(username, email_address)
- 它給出'用戶名'的值,除非它爲空,在這種情況下,它會給出'email_address'的值。
希望有幫助 - 也許不是你問的問題,但如果你可以改變或詳細說明,那麼我們將很樂意進一步幫助。
另外,我再次讀你的問題:你是否試圖建議用戶可用的用戶名?舉例來說,如果他們進入:
名字:
Kieren
姓:Johnstone
然後你要提出建議KierenJohnstone,KierenJohnstone1,JohnstoneK,KJohnstone等? (如果它們可用,那就是)。
如果是這樣的話,你應該寫它產生的可能性的方法,像這樣:
public IEnumerable<string> GeneratePossibleBaseUsernames(string firstname, string lastname)
{
yield return firstname + lastname; // eg KierenJohnstone
yield return lastname + firstname; // eg JohnstoneKieren
yield return firstname.Substring(0,1) + lastname; // eg KJohnstone
yield return lastname + firstname.Substring(0,1); // eg JohnstoneK
yield return firstname + lastname.Substring(0,1); // eg KierenJ
}
然後,你會看到,如果這些數據庫是可用的:
public List<string> GetAvailablePossibleUsernames(string firstname, string lastname)
{
List<string> availablePossibilities = new List<string>();
foreach (string possible in GeneratePossibleBaseUsernames(firstname, lastname))
{
if (IsAvailable(possible))
{
availablePossibilities.Add(possible);
continue;
}
for (int i = 1; i < 100; i++)
{
string postfixedTest = possible + i.ToString();
if (IsAvailable(postfixedTest))
{
availablePossibilities.Add(postfixedTest);
break;
}
}
}
return availablePossibilities;
}
你需要編寫IsAvailable()方法,將字符串作爲參數並返回bool - 如果用戶名不存在於數據庫中,則爲「true」。
此方法將返回一個字符串對象列表,並帶有建議:它將嘗試GeneratePossibleBaseUsernames的結果,如果其中一個不可用,那麼它將在數字1到99之後嘗試它,例如,如果基倫約翰斯通被採納,那就意味着基倫約翰斯通1。
您也可以在SQL存儲過程中實現所有這些。當你插入/更新記錄時,你一定要仔細檢查名字是否可用,或者在用戶名錶上放置一個唯一的索引來停止重複 - 以防兩個人同時使用相同的名字!
希望有所幫助。
- 1. 生成用戶名
- 2. 函數生成任意簽名
- 3. 生成使用函數srand
- 4. 調用從const成員函數非const成員函數指針
- 5. 從const成員函數調用非const成員函數
- 6. 在php中自動生成用戶名
- 7. 隨機用戶名生成器
- 8. 生成唯一的用戶名(omniauth + devise)
- 9. 根據函數名稱生成#REF的Excel VBA函數?
- 10. 生成單個實體時調用「在非對象上調用成員函數」
- 11. 生成的函數
- 12. 生成的函數
- 13. 成員函數非對象
- 14. 非成員函數模板
- 15. Java:根據用戶定義的函數生成隨機數
- 16. 學生成績轉換使用用戶定義的函數
- 17. 調用非對象的成員函數
- 18. 調用非對象的成員函數
- 19. 生成函數或異步生成函數後清理
- 20. 如何從模板中使用const或非const成員函數生成類?
- 21. 將非會員非朋友函數加入到成員函數
- 22. 用於生成函數名稱的C預處理器定義
- 23. Python生成器函數名稱 - 前綴是否有用?
- 24. 需要在生成器函數名稱中使用連字符
- 25. Effective C++項目23首選成員函數的非成員非朋友函數
- 26. 調用一個成員函數用戶數據()一個非對象
- 27. 基於非靜態數據成員自動生成構造函數?
- 28. 支持用戶生成函數的最佳模式?
- 29. 將User.Identity.Name生成與Membership.GetUser()相同的數據。用戶名
- 30. 匿名函數與非匿名函數一樣強大