System.NullReferenceException: 'Object reference not set to an instance of an object.'
Throwing an exception on this line:
AnnuityReader.WriteLine(fields[0] + "," + fields[1] + "," + fields[3] + "," + fields[4]);
I know there are some similar posts out here which have been resolved, but I have not figured it out yet. Any input is appreciated.
InitializeComponent();
}
StreamWriter AnnuityReader;
List<string[]> Accounts = new List<string[]>();
private int x;
private void Assignment2_Load(object sender, EventArgs e)
{
string currentLine;
string[] fields = new string[2];
//Create streamreader
StreamReader AnnuityReader = new StreamReader("annuities.txt");
while (AnnuityReader.EndOfStream == false)
{
currentLine = AnnuityReader.ReadLine();
fields = currentLine.Split(',');
Accounts.Add(fields);
cmbAccount.Items.Add(fields[0]);
}
AnnuityReader.Close(); //Creates dictionary
}
private void cmbAccount_SelectedIndexChanged(object sender, EventArgs e)
{
lstAccountDetails.Items.Clear();
int index = cmbAccount.SelectedIndex;
string[] fields;
fields = Accounts[index];
lstAccountDetails.Items.Add(String.Format("{0,10} {1,10}{2,10}", "Rate", "Deposit($)", "Value($)"));
lstAccountDetails.Items.Add(String.Format("{0,10} {1,10:C}{2,10:C}", fields[1], double.Parse(fields[2]), double.Parse(fields[4])));
}
private void btnProcess_Click(object sender, EventArgs e)
{
lstAccountDetails.Items.Clear();
double deposit;
int index = cmbAccount.SelectedIndex;
string[] fields = Accounts[index];
try
{
deposit = double.Parse(txtDeposit.Text);
}
catch
{
MessageBox.Show("Enter a positive number");
txtDeposit.SelectAll();
txtDeposit.Focus();
return;
}
double currentValue = double.Parse(fields[4]);
if (deposit > 0)
{
currentValue += deposit;
}
else
MessageBox.Show("Please enter a positive number");
fields[4] = currentValue.ToString();
fields = Accounts[x];
AnnuityReader.WriteLine(fields[0] + "," + fields[1] + "," + fields[3] + "," + fields[4]);
lstAccountDetails.Items.Add(String.Format("{0,10} {1,10}{2,10}", "Rate", "Deposit($)", "Value($)"));
lstAccountDetails.Items.Add(String.Format("{0,10} {1,10:C}{2,10:C}", fields[1], double.Parse(fields[2]), double.Parse(fields[4])));
txtDeposit.Clear();
AnnuityReader.Close();
}