2014-09-29 53 views
0

我試圖迭代通過數據集來檢查輸入到文本框(TXTBXCustomerLookup)中的公司名稱是否與列「CompanyName」中的數據集中的任何條目匹配按下foreach通過數據集來比較文本框文本C#

到目前爲止,我有這樣的:

private void BTNLookupCustomer_Click(object sender, EventArgs e) 
    { 

     if ((TXTBXCustomerLookup.Text != "") && (TXTBXCustomerLookup.Text != " ")) 
     { 
      foreach (DataTable table in ds.Tables) 
      { 
       foreach (DataRow row in table.Rows) 
       { 
        foreach (object item in row.ItemArray) 
        { 
         if (TXTBXCustomerLookup.Text = this.CompanyName.ToString()) 
         { 
          BTNUpdateCustomer.Enabled = true; 
          BTNDeleteCustomer.Enabled = true; 
         } 
        } 
       } 
      } 
     } 
    } 

,它是未來與錯誤「無法隱式轉換類型‘字符串’到「布爾」和「不能轉換方法組‘的ToString’非-delegate type'string'。您是否打算調用方法「

這些錯誤是下面

if (TXTBXCustomerLookup.Text = this.CompanyName.ToString()) 

行了,我知道那一定是簡單的東西,我做錯了,但實在想不出什麼,有花了一個多小時試圖弄清楚(使用舊的信賴谷歌)

+0

'='必須是'=='。但是把'CompanyName.ToString()'放在循環外面更聰明一些,比如你的代碼的第一行:'string toCompareTo = this.CompanyName.ToString();'然後在循環中做一個'if (blah.Text == toCompareTo)...' – 2014-09-29 09:14:19

+0

您比較this.CompanyName與文本框文本。當然,它不應該將文本框的值與最後一個foreach的項目進行比較?如果你的比較是正確的,你真的不需要任何似乎有點奇怪的foreach語句。 – helgeheldre 2014-09-29 09:23:14

回答

1
if (TXTBXCustomerLookup.Text == this.CompanyName.ToString()) 
0

您需要兩個=符號。否則,您嘗試將compannyname值分配給您的TXTBXCustormerLookup文本框。

if (TXTBXCustomerLookup.Text == this.CompanyName.ToString()){ 
    BTNUpdateCustomer.Enabled = true; 
    BTNDeleteCustomer.Enabled = true; 
}