2014-01-23 56 views
0

我有一個網頁,其中包含字段Patient Name。輸入名稱後,它將從sql database中提取數據,並顯示在文本框中輸入的成員的agerelation比較數據庫值忽略重複空格

現在的問題是,如果在數據庫中輸入數據時發生間距錯誤,它將返回零行。

例如

如果數據庫包含名稱Suresh Patel,即名和姓之間的兩個空格由於數據錄入員的錯誤,我在文本框Suresh Patel,即名之間空單進入因爲數據庫和文本框中的值由於數據庫值的額外間隔而不匹配,所以它不返回Suresh的年齡和關係。

我需要你的幫助,找到一種方法來排除ALL文本框和數據庫中的空間,同時比較它們。

+0

所有空間或重複的空間?將「Foo___Bar」匹配到「Foo_Bar」可能是有用的,但是如果刪除所有空格,您將匹配「FooB__ar」也是 – SPArchaeologist

+0

是的,我的意思是第一個。這意味着它應該沒有多大的空間留在名字和姓氏 – user3036372

+0

如果你想忽略所有的空格,這個問題有一個解決方案:http://stackoverflow.com/questions/2709929/query-that -ignore-the-spaces – SPArchaeologist

回答

0

我會建議你,雖然插入成員的名稱,你可以使用正則表達式驗證器完全匹配。在正則表達式下方不允許在開始和結束時使用空格,也不允許在字符串中間連續使用兩個空格。另請參見 http://msdn.microsoft.com/en-us/library/ff650303.aspx

regex = re.compile(
    """^   # Start of string 
    (?![ ])  # Assert no space at the start 
    (?!.*[ ]{2}) # Assert no two spaces in the middle 
    (?!.*[ ]$) # Assert no space at the end 
    [A-Z. ]{8,20} # Match 8-20 ASCII letters, dots or spaces 
    $    # End of string""", 
    re.IGNORECASE | re.VERBOSE) 

<asp:RegularExpressionValidator runat="server" ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionValidator> 
+0

是的先生afnan。感謝你的代碼。但是這對於新條目是可能的。如果我現在添加這個代碼,它將不允許在數據輸入過程中有任何額外的空格。但是那些已經輸入到數據庫中的數據呢?所以我想要一個比較兩個值的解決方案,這兩個值與兩個值 – user3036372

+0

@ user3036372有效參數中給出的空間無關。然後我認爲你應該按照SPArchaeologist –

+0

@AfnanAhmad的說明 - 在我上面評論中的鏈接文章將刪除所有空格,而不是被欺騙的文章。所以基本上最後「Foo Bar」將等於「FooB ar」 – SPArchaeologist

0

你可以用一個空格代替多個空格。

你可以用下面的代碼更新數據庫:

string name = "ali reza"; //get name from data base 
name = Regex.Replace(name, @"\s+", " "); 
+0

不明白......如果數據庫端存在重複空間會怎麼樣?上面只會管理來自文本框的用戶輸入,對吧?上面的問題暗示存儲在數據庫中的數據中有空格。您是否建議閱讀所有數據並通過.net代碼端的正則表達式進行過濾? – SPArchaeologist

+0

他可以用這種方式更新數據庫。 – MX2