2011-08-08 110 views
0

我的代碼:無法隱式轉換類型「詮釋」到「字符串」

public void FillMaxBankCode() 
{ 
    try 
    { 
     DataSet ds = new DataSet(); 
     ds = bol.SelectMaxBankCode(); 
     string j = ds.Tables[0].Rows[0].ToString(); 
     txtbankid.Text = int.Parse(j); //ERROR HERE 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 



    public DataSet SelectMaxBankCode() 
    { 
     try 
     { 
      **Squery = "EXEC SelectMaxBankCode";** 
      return dal.DBread(Squery); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

我新的C#和上面的代碼顯示錯誤..誰能幫助?

+0

不是C#專家,但在我看來,要轉換一個字符串爲int的時候,其實你首先需要一個字符串值? – Maggie

+0

我想在文本框中顯示銀行ID ..我可以做什麼.. –

回答

5

txtbankid.Text屬性類型是一個字符串。請勿使用int.parse。沒有必要。只要做到:txtbankid.Text = j;

+0

更好..不需要額外的變量,只需要'txtbankid.Text = ds.Tables [0] .Rows [0]。 ToString();' –

+0

與out int.parse,我也得到錯誤.. –

+0

ds.Tables [0] .Rows [0] .ToString();反正也不是很好。你應該檢查NULL並刪除try catch – Peter

0
public void FillMaxBankCode() 
     { 
      try 
      { 
       DataSet ds = new DataSet(); 
       ds = bol.SelectMaxBankCode(); 
       string j = ds.Tables[0].Rows[0].ToString(); 
       txtbankid.Text = j; 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 
+0

如果iam把這個txtbankid.Text = j;即時消息沒有得到數字,它顯示system.draw ..... –

+0

@Gugu:發佈與本次討論相關的所有代碼和錯誤消息。謝謝 – 2011-08-08 13:46:52

0

int.Parse(..)是包含數字的字符串轉換爲整數。您正嘗試對字符串執行功能int.Parse(..),但將其分配給另一個字符串。這將不起作用,因爲int.Parse(..)返回和整數。在這裏閱讀關於Int32.Parse (String) method

0

如果你想確保該值分配給它之前的整我建議你使用的TryParse

// check if the table and row exists 
if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) 
{ 
    string j = ds.Tables[0].Rows[0].ToString(); 
    int value = 0; 
    if (int.TryParse(j, out value)) 
     txtbankid.Text = value.ToString(); 
} 
相關問題