2011-08-08 67 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(); 
} 
相关问题