2015-12-15 4 views
-1

Привет, ребята У меня есть этот проект банковского счета, который отображает информацию об учетной записи, когда пользователь выбирает индекс. Эта информация включает текущий баланс, который имеет учетная запись. И тогда у меня также есть моделирование депозитов, сумма депозита должна складываться до текущего баланса. Я не могу понять, почему он не делает работу.C# Депозит банковского счета

У меня есть этот код для моего выбранногоindex, который подтягивает информацию об учетной записи.

private void accountNumComboBox_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (accountNumComboBox.SelectedIndex == 0) 
     { 


      ownerIdLabel.Text = "0001"; 
      balanceLabel.Text = savings1.Balance.ToString("c"); 
      interestLabel.Text = (string.Format("{0}%", savings1.Interest)); 
      interestRLabel.Text = "Interest Rate:"; 
     } 

И у меня есть этот код для кнопки депозитного

private void depositButton_Click(object sender, EventArgs e) 
    { 
     decimal amount; 
     if (decimal.TryParse(depositTextBox.Text, out amount)) 
     { 
      account.Deposit(amount); 
      account.Balance += amount; 
      depositTextBox.Clear(); 
     } 
     else 
     { 
      MessageBox.Show("Pls enter valid amount."); 
     } 
    } 

Суммы Входит обыкновение добавлять к текущему балансу в balancelabel.Text. Большое вам спасибо за вашу помощь.

EDIT: Я также получил это в моем классе BankAccount

public decimal Balance 
    { 
     get { return _balance; } 
     set { _balance = value; } 
    } 
    public BankAccount(decimal intialBalance, string ownerId, string accountNumber) 
    { 

     _balance = intialBalance; 
     _customerId = ownerId; 
     _accountNumber = accountNumber; 
    } 


    public void Deposit(decimal amount) 
    { 
     if (amount>0) 
     _balance += amount; 
     else 
      throw new Exception("Credit must be > zero"); 
    } 
    public void Withdraw(decimal amount) 
    { 
     _balance -= amount; 
    } 
+0

Похоже, что 'saving1' и' account' являются двумя отдельными экземплярами класса BankAccount', над которым вы работаете. Я не вижу никаких изменений в экземпляре 'saving1'. Выясните, как вы заполняете/обновляете экземпляр 'saving1'. – niksofteng

+1

Также вы делаете двойной депозит. Один раз в методе «Депозит», а затем снова установите «account.Balance» в 'depositButton_Click'. Я молюсь, чтобы это не было сделано в конечном коде. :) – niksofteng

+0

О, я получил экземпляр сбережений1, Открытый частичный класс Form1: Форма { Список сбережения = новый Список (); Экономия Экономия 1 = новая сберегательная сумма («0001», «31-1000», 100 м, 0,01); – tapsilog

ответ

0

Ваша кнопка депозита обработчик события не имеет код, чтобы изменить свой ярлык баланса.

private void depositButton_Click(object sender, EventArgs e) 
{ 
    decimal amount; 
    if (decimal.TryParse(depositTextBox.Text, out amount)) 
    { 
     account.Deposit(amount); 
     account.Balance += amount; 
     depositTextBox.Clear(); 
     balanceLabel.Text = account.Balance.ToString("c"); // This line added 
    } 
    else 
    { 
     MessageBox.Show("Pls enter valid amount."); 
    } 
} 

Отредактированы:

Используя код

private BankAccount account; 
private void accountNumComboBox_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (accountNumComboBox.SelectedIndex == 0) 
    { 
      account = (BankAccount) savings1; 
    } 
    updateUi(); 
} 

private void updateUi() { 
    ownerIdLabel.Text = "0001"; 
    balanceLabel.Text = account.Balance.ToString("c"); 
    interestLabel.Text = (string.Format("{0}%", account.Interest)); 
    interestRLabel.Text = "Interest Rate:"; 
} 

private void depositButton_Click(object sender, EventArgs e) 
{ 
    decimal amount; 
    if (decimal.TryParse(depositTextBox.Text, out amount)) 
    { 
     account.Deposit(amount); 
     account.Balance += amount; 
     depositTextBox.Clear(); 
     balanceLabel.Text = account.Balance.ToString("c"); // This line added 
    } 
    else 
    { 
     MessageBox.Show("Pls enter valid amount."); 
    } 
} 

Примечания: Вышеуказанные редактирования основано на коде, который вы даете. Возможно, вам придется немного изменить, чтобы соответствовать вашей цели. Кроме того, обратите внимание, что вы на самом деле жестко кодируете текст ownerId.

+0

Oooh Это сработало! Спасибо огромное! – tapsilog

-1

В вашем обычном депозите вы меняете баланс:

_balance += amount; 

Однако в вашей обычной depositButton_Click вы также изменить баланс:

account.Deposit(amount); 
account.Balance += amount; 

Вам не нужно изменить баланс здесь, потому что депозит уже сделает это.

+1

Вопрос, почему депозит не отражает новую ценность, а не почему он удваивает. – niksofteng

Смежные вопросы