While I agree wholeheartedly with @Steve's comment about using parameterized queries, in this case I'll just suggest adding an appropriate TO_DATE call to try and get you going.  Try this:
cmd.CommandText = "SELECT 'At CFO Approval ' || count(*) || " &
                  "' Cheques' || ' of Rs.' || " &
                  "nvl(to_char(sum(bpv_amt),'9,999,999,999'),0) CFOApp " &
                  "from check_data where sta_flg = 0 and " &
                  "TRUNC(bpv_date)=TO_DATE('" & TreeView1.SelectedValue & "', 'DD MON YYYY')" 
EDIT
Added TRUNC() call to date comparison.
Tested as follows:
CREATE TABLE CHECK_DATA
  (BPV_AMT   NUMBER,
   STA_FLG   NUMBER,
   BPV_DATE  DATE);
INSERT INTO CHECK_DATA (BPV_AMT, STA_FLG, BPV_DATE) VALUES (100, 0, SYSDATE);
INSERT INTO CHECK_DATA (BPV_AMT, STA_FLG, BPV_DATE) VALUES (200, 0, SYSDATE-1);
INSERT INTO CHECK_DATA (BPV_AMT, STA_FLG, BPV_DATE) VALUES (300, 1, SYSDATE);
INSERT INTO CHECK_DATA (BPV_AMT, STA_FLG, BPV_DATE) VALUES (200, 0, SYSDATE);
Now, executing the query:
SELECT 'At CFO Approval ' || count(*) ||
       ' Cheques' || ' of Rs.' ||
       nvl(to_char(sum(bpv_amt),'9,999,999,999'),0) CFOApp
  from check_data
  where sta_flg = 0 AND 
        TRUNC(bpv_date) = TO_DATE('29 Aug 2012', 'DD MON YYYY');
results in
At CFO Approval 2 Cheques of Rs.           300
Share and enjoy.