2015-04-23 125 views
0

我有一個我用EntityFramework加載的數據庫。查找2個字符串之間的字符串值

在這個數據庫中有一個包含幾列的表。其中2列稱爲ZipcodeFrom和ZipcodeTill。表中的Zipcodes來自不同的國家,所以沒有真正的標準格式。

我現在的問題是以下。

我收到一個Zipcode,我需要找到包含與接收到的Zipcode關聯的Zipcode範圍的行。

我無法使用SQL來使用BETWEEN函數。所以我在尋找一個功能之間爲C#if (Zipcode BETWEEN ZipcodeFrom and ZipcodeTill)

+0

你能告訴樣本數據? –

+0

如何定義該範圍內的內容? – DavidG

+0

試過了什麼?將示例代碼添加到您的問題。 –

回答

1

假設你是按字母順序執行此操作,這有效地模仿SQL BETWEEN操作:

var zipCode = "SOMECODE"; 

var result = from row in db.Table 
      where row.ZipcodeFrom <= zipCode 
      && row.ZipcodeTo >= zipCode; 

如果您的提供商不支持使用<<=>>=運營商,你應該能夠使用string.Compare代替:

var result = from row in db.Table 
      where string.Compare(row.ZipcodeFrom, zipCode) <= 0 
      && string.Compare(row.ZipcodeTo, zipCode) >= 0; 
+0

這裏的問題是,當我這樣做時發生以下錯誤,因爲我比較字符串:Operator> = can not適用於字符串和字符串類型的操作數 –

+0

@RobvK好點,我做了一個編輯。 – DavidG

相關問題