如何从另一个类执行方法

时间:2013-12-21 18:54:05

标签: c#

我正在做一个店铺管理项目。 当我销售产品时,余额不是主要来自更新。 我这样做:

方法主要来自:

public partial class admin : Form
{

    public void update_balance()
    {
        var con = new MySqlConnection(sql);
        con.Open();
        var command = new MySqlCommand("SELECT total FROM balance", con);
        MySqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            balance.Text = reader.GetString(0);
        }
    }
}

现在从买/卖中调用此方法

admin a1 = new admin();
a1.update_balance();

但是平衡不是主要来自更新。

1 个答案:

答案 0 :(得分:0)

问题1:您正尝试使用GetString()

将小数类型作为字符串

解决方案:使用GetDecimal()获取总数,然后将其转换为字符串。

试试这个:

 balance.Text = reader.GetDecimal(0).ToString();

您可以直接使用Index reader[Index]并使用ToString()

进行转换
 balance.Text = reader[0].ToString();

问题2:
您正在创建新的实例变量表单管理表单并更新余额。

解决方案2:您无法按新创建的实例变量分配值。您需要使用Application.OpenForms[FormName]方法来获取已打开的adminform以更新管理表单。

完整代码:

public partial class admin : Form
{

  public void update_balance()
  {
    var con = new MySqlConnection(sql);
    con.Open();
    var command = new MySqlCommand("SELECT total FROM balance", con);
    MySqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        balance.Text = reader[0].ToString();
    }
  }
}

使用以下代码来自买/卖表格

        admin adminform= (admin) Application.OpenForms["admin"]; //your formname  i assume it is admin
        adminform.updateform();