不能隐式转换类型'int'& # 39;字符串# 39;

本文关键字:转换 字符串 类型 int 不能 | 更新日期: 2023-09-27 18:04:43

我的代码:

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#的新手,上面的代码显示错误。有人能帮忙吗?

不能隐式转换类型'int'& # 39;字符串# 39;

txtbankid.Text属性类型为字符串。不要使用int.parse。没有必要。只需:txtbankid.Text = j;

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);
            }
        }

int.Parse(..)用于将包含数字的字符串转换为整数。您正试图在字符串上执行函数int.Parse(..),但随后将其分配给另一个字符串。这不起作用,因为int.Parse(..)返回一个整数。在这里阅读有关Int32的信息。解析(String)方法

如果你想在赋值之前确保值是一个整数,我建议你使用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();
}