Вы должны использовать
double val = reader.GetDouble(reader.GetOrdinal("Balance"));
и преобразовать его просто:
txtbalance.Text = val.ToString();
Редактировать: Когда я снова увижу ваш код (если вы измените его как показано ниже)):
while(reader.Read())
{
var val = reader.GetDouble(reader.GetOrdinal("Balance"));
txtbalance.Text = val.ToString();
}
какова цель обновления пользовательского интерфейса на каждой итерации?пользователь ничего не видит в этом случае, в txtbalance.Text = val.ToString();
Вы просто показываете значение последней записи.Поэтому вместо того, чтобы извлекать элемент n
из БД, в своем запросе выполните какой-то порядок и просто покажите первый элемент.