2013-12-21 157 views
-4

我正在做一個店鋪管理項目。 當我銷售產品時,餘額不在主要更新中。 我在做這樣的:如何執行其他類的方法

方法主要來自:

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

也顯示管理員表單代碼。但只有相關部分 – Shaharyar

+0

以及我只是在管理中調用update_balance()。 – LonelyTanvir

回答

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(); 
相關問題