2013-11-14 186 views
0

好吧,我有一個用戶表,我想檢查。此用戶表具有用戶名,電子郵件和帳號。我想要做的是檢查是否有人被採取,如果已經採取了返回。存儲過程驗證最佳方法

我想在C#側做一個數組例如

CHECK AGAINST TABLE 
IF USERNAME MATCHES INSERT @ARRAY "TRUE" 
IF EMAIL MATCHES INSERT @ARRAY "TRUE" 
ETC. 

然後我會打電話給數組和索引檢查

If registrationValidationArray[0] = "true" 
{ 
    ViewBag.UserNameTaken = "True" 
    return view("Registration") 
    // On cshtml post error next to username that it has been taken 
} 

所以我的問題是沒有這種做法聽起來合乎邏輯和聽起來像是會起作用,還是有另一種方法可以幫助我在這裏過程明智。另一位開發人員爲程序提出了一個增量,所以如果用戶名是+1,然後根據數值在C#側顯示,但我無法將頭圍繞在那個上。任何人都知道更好的方式,或在我的邏輯中看到缺陷?

+0

聽起來像是一個很好的方式讓你的前端有人找出你的系統上正在使用的用戶名/帳號.. – Paddy

+0

那麼現在我只需要擔心得到這個工作。後來我可以擔心這樣的事情。 @Paddy與其他任何註冊服務有何不同,例如當您使用Google註冊新電子郵件時?我可以看到你的來源,但同時這需要檢查,我不能告訴用戶嘿,你輸入的一個或多個已經被使用。這是什麼將是一個建設性的方式去做,然後是我問。 – NitroFrost

+0

而不是告訴他們確切地使用什麼,只是說明輸入的細節已被使用,並要求一組不同的細節。更好的辦法是爲你生成用戶名,不需要檢查。 – Paddy

回答

1

如果您使用的是Telerik的OpenAccess的ORM,你有一個存儲過程從檢查我建議你到這個存儲過程映射到Domain Method返回詳細信息,然後的OpenAccess將返回你很好的命名屬性的對象。您可以使用返回的對象而不是數組。這會讓你的代碼更易讀,更易於維護。現在您應該記住索引0和索引1的含義,即使您將索引定義爲常量,它也不會是引人注目的代碼。