我正在做一个店铺管理项目。 当我销售产品时,余额不是主要来自更新。 我这样做:
方法主要来自:
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();
但是平衡不是主要来自更新。
答案 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();