これを変更する方法:
public void Charge(string bankaccountnumber, decimal moneyamount)
{
foreach (Bankaccount bankaccountInProcess in bankaccount)
{
if (bankaccountnumber == bankaccountInProcess.Bankaccountnumber)
bankaccountInProcess.ChargeFromBankAccount(moneyamount);
}
return;
}
そのforeachの代わりにOleDbDataReaderを使用するには?
金額は、銀行口座から引き落とされ、BalanceAmountAvailableForWithdrawal(およびWholeAccountBalance)から引き出される金額を入力するように求められたときに、コンソールに入力されます。ただし、アクセスファイルにはmoneyamount列はなく、WholeAccountBalance列とBalanceAmountAvailableForWithdrawal通貨列のみがあります。
これは、クラスの別の部分でどのように変更したかの例です。
public bool IdentifyUser(string bankAccountnumber, int passWord)
{
connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source= C:\\asd.accdb");
connection.Open();
OleDbCommand getOne = new OleDbCommand();
getOne.Connection = connection;
getOne.CommandText = "SELECT accounNum, pinCode FROM Account WHERE accountNum = '" +
bankAccountnumber +"'";
OleDbDataReader readOne = readOne.ExecuteReader();
if (readOne.Read())
{
int GottenPassWord = (int)readOne["pinCode"];
if (GottenPassWord == passWord)
return true;
}
else
{
Console.WriteLine("Account was not found");
}
connection.Close();
return false;
}
これが私がこれまでに思いついたものです:
public void Charge(string bankaccountnumber, decimal moneyamount)
{
connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source= C:\\asd.accdb");
connection.Open();
OleDbCommand getOne = new OleDbCommand();
getOne.Connection = connection;
getOne.CommandText = "SELECT accounNum, WholeAccountBalance, BalanceAmountAvailableForWithdrawal FROM Account WHERE accounNum = '" +
bankaccountnumber + "'";
OleDbDataReader readOne = readOne.ExecuteReader();
if (readOne.Read())
{
// i dont know what to put here to make this do the same thing as the foreach did
return;
}
else
{
Console.WriteLine("Charging did not work");
return;
}
}