Assuming that it's your book fee that is the numeric value (if it isn't, then use the right values yourself).
First, convert it to an appropriate numeric type (appropriate in the case matching your DB column data type - so if it's FLOAT, use
float
or
double
; if it's DECIMAL use
decimal
. If it's NVARCHAR, change your database so it isn't - you should always store values in the most appropriate data type or it will give huge problems later on.
Then, format the data to a string.
bookfee.Text = string.Format("{0:0.00}", (double) rred[2]);
BTW: You are doing things which combine to make one nasty source of bugs: you aren;t specifying the columns you want to retrieve (instead you get all of them), and you use numeric offsets to specify which column you use.
If you must use
SELECT * FROM ...
- and it's very inefficent, particularly if you aren't using all values, as you aren't - then you really have to use column names rather than numeric offsets. Otherwise you are relying on a column order that can be changed outside of your program - at which point things start to go very subtly and badly wrong: you can really muck up your database if you aren't very, very careful. List the columns you want, and only those, and use column names to access them from your reader.
Ans most seriously of all: Do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead. The code you have there allows any user to delete your database just by typing in a text box...