The specific issue is that you're accessing the first row of dt
the table. But there are no rows in that table. I know that because you create the table in the previous line. At that point it is an empty table. Hence you are trying to access an empty array of rows. Before you try to access a row you need to first confirm the table has rows using dt.Rows.Count
Furthermore you have the same issue with the columns. You are trying to access the first column of the first row dt.Rows(0)(0)
but the row has no columns defined so there are no columns to read. In order to get this code to work you would need to first define the columns in your table and then add rows to the table with the data. At that point the code would work fine.
I cannot, at this point, tell you what you should be doing in this specific code because you're creating a new table and then trying to access a non-column of a non-existent row. You're going through all this effort just to set the balance textbox of your UI. You don't really need a table for that. Since you didn't provide us with where the balance is currently defined at we cannot give you the correct code but the simplest possible example would be this.
' TODO: Get data from your database backend using whatever library you use
Dim oldBalanceValue As Currency
Set oldBalanceValue = 12.34
oldBalance.Text = oldBalanceValue.ToString()