none
請問一個關於DataReader中HasRows的問題 RRS feed

  • 問題

  • 想請問我想要從資料庫抓資料判斷是否有符合我條件的資料

    如果有就把該資料列的"編號"欄位指給section這個變數

    因此用DataReader的HasRows判斷DataReader有沒有資料

    有資料就讓section = checky_read.item("編號")

    沒有則結束判斷式

    但是執行後卻出現 "當目前沒有資料時,嘗試讀取無效。" 的錯誤訊息

    錯誤在 section = checky_read.item("編號") 這行

    但是照理說沒有資料時不是根本不應該執行到 section = checky_read.item("編號") 這行嗎?

    程式碼片段如下:

    -----------------------------------------------------------------------------------------------------------------------

    Dim check_read As SqlDataReader = check.ExecuteReader()
    IF checkyesterday_read.HasRows <> 0
        section = checky_read.item("編號")
    ELSE IF checkyesterday_read.HasRows = 0
    END IF

    ------------------------------------------------------------------------------------------------------------------------

     

    2006年9月11日 上午 09:17

解答

  • DataReader.HasRows 只是判斷有無資料可讀取 .

    如果你要取用資料,必須要在取用前下 DataReader.Read() 才可以 .

    2006年9月11日 下午 12:19
    版主

所有回覆

  • DataReader.HasRows 只是判斷有無資料可讀取 .

    如果你要取用資料,必須要在取用前下 DataReader.Read() 才可以 .

    2006年9月11日 下午 12:19
    版主
  • DataReader.HasRows 只是判斷有無資料可讀取 .

    如果你要取用資料,必須要在取用前下 DataReader.Read() 才可以 .

    不好意思,想請問版主
    如果程式有錯誤、或是查詢條件錯誤、或是例外狀況的話,顯示錯誤訊息在網頁上
    請問是這這樣寫嗎? 謝謝.
    但我自己試過,卻是在執行到throw的那行顯示錯誤
    try
    {
            .......
    }
    catch (Exception ex)
    {
        Response.Write("<b>Error Message---- </b>" + ex.ToString() + "<HR/>");
        throw;
    }
     
    2009年6月26日 上午 10:18
  • 你又把例外丟出來當然會顯示錯誤啊。
    不要 throw 就行了。

    (...)
    小人物一枚。
    2009年6月26日 下午 03:04
    版主