2012-01-22 91 views
1

我到處搜索過,看起來好像沒有任何明顯的解決方案。 我有一個很多用戶的網站,但我需要存儲一個全球唯一的配置文件值(電話),沒有人可以使用相同的電話號碼兩次。使用asp.net默認配置文件提供程序

這將是非常緩慢循環所有我的用戶獲得他們的電話價值,並匹配他們提供一個拒絕它的用戶。

有沒有辦法讓配置文件的值對所有用戶都是唯一的?就像用戶名是唯一的還是電子郵件一樣?謝謝。

+0

你在哪裏存儲用戶(SQL)?如果您想以這種方式搜索電話號碼,您在哪裏搜索用戶?爲什麼不索引電話號碼,以便查找它很容易?如果用戶在C#中的集合中,那麼您可以使用不同的集合類型。如果在SQL中,則爲電話字段的表添加索引。 – MacGyver

+0

我正在使用asp.net默認成員資格/配置文件提供程序。 – user1027620

+0

這種方法不是僅僅檢查web.config的配置,而是將用戶的應用程序信息(用戶ID等)存儲在安全會話cookie中?我問的是你在哪裏存儲所有這些用戶的數據(例如,當你創建/更新/刪除/檢索用戶)?你是否將它們存儲在Active Directory,SQL中?您對這些數據的查詢必須查看一些索引以避免重複的電話號碼 - 當您創建或更新用戶時。 – MacGyver

回答

1

下面是如何創建一個表中的SQL索引:

CREATE INDEX IDX_CUSTOMER_PHONE on user (phone) 

當你查詢數據庫,它會通過快速搜索表中的電話號碼,而不是通過循環查找你的價值所有的值:

SELECT phone FROM user WHERE phone = '555-555-5555' 

如果你需要在你的C#代碼實施幫助,它會要求你查詢數據庫。我的建議是編寫存儲過程,使其返回2個結果集。第一個結果集是記錄本身,第二個結果集在保存期間(在創建或更新時)會返回true還是false。在您的C#代碼中,首先檢查錯誤結果集,如果返回結果集則顯示重複項。

+0

我的主要問題是sql。我真的很糟糕,我不知道表是如何創建的......:/ – user1027620

+0

給我發電子郵件在wcfguy在雅虎點com和我可以幫助明天回答任何問題..如果你還沒有配置sql服務器,您可能會遇到很多問題...首先在對象資源管理器中創建SQL Server Management Studio中的表格,並讓我知道您得到多遠 – MacGyver

+0

好的,非常感謝不久,我會盡快給您發送電子郵件。 – user1027620

相關問題