none
如何撈取DataSet的某一Table某一欄位值 RRS feed

  • 問題

  • 我利用資料庫和Javascript
    設計了一張網頁
    其效果用以下例子說明

    文字區                      圖形區
    ----------------------------   --------------------------------
    WWW                        圖片
    XXXX
    YYY
    ZZZZ
    ---------------------------------------------------------------------------------------

    文字區的文字是連結到資料庫
    透過JavaScript當我滑鼠移過該文字
    右邊的圖片 會改變他的路徑 因而改變圖片
    而今當我初次載入網頁
    圖片因為沒有路徑 會變成一個紅XX

    我想在Page_Load的地方
    當第一次載入時抓取資料庫內 主鍵最小的圖片路徑欄位
    我的SQL語法類似下面

    SELECT  TOP (1) 圖片路徑 FROM   資料表 ORDER BY  主鍵

    如果執行後出來的結果會是一個類似
    image_01.jpg的值

    我在Page_Load寫的語法如下

            SqlConnection objConn;
            objConn = new SqlConnection(ConfigurationSettings.AppSettings["movielist"]);
            SqlDataAdapter objDA;
            DataSet objDS = new DataSet();
            objDA = new SqlDataAdapter("SELECT TOP (1) n_pic_source FROM Gvs_Video ORDER BY serno",objConn);
            objDA.Fill(objDS,"topmovie");   
            Image1.ImageUrl = ????

    紅色的部份就是我不知道該填什麼才好?
    原本我填入
            Image1.ImageUrl = "image/"+objDS.Tables[0].Rows[0].ToString();
    但是圖片的內容顯示是

    http://localhost/CT7005/Act/image/System.Data.DataRow
    很明顯與我期望不符
    請問我該如何撈取該table的欄位值

    另外,像我這樣,
    只是為了取一筆路徑資料塞入到第一次載入的網頁的圖片路徑中
    就使用DataSet會不會太過耗工和浪費呢?
    有沒有更好的方法可以提供給小弟


    2008年5月6日 上午 02:37

解答

  • Code Snippet
    Image1.ImageUrl = "image/"+objDS.Tables[0].Rows[0]["ImageUrl"].ToString();

     

     

    如果只是一個純量值資料,可考慮使用 Command.ExecuteScalar() 來直接取值。

    如果只是一個列資料,可考慮使用 Command.ExecuteReader() 來取得 DataReader,再用它來讀資料列。

    2008年5月6日 上午 02:46
    版主

所有回覆

  • Code Snippet
    Image1.ImageUrl = "image/"+objDS.Tables[0].Rows[0]["ImageUrl"].ToString();

     

     

    如果只是一個純量值資料,可考慮使用 Command.ExecuteScalar() 來直接取值。

    如果只是一個列資料,可考慮使用 Command.ExecuteReader() 來取得 DataReader,再用它來讀資料列。

    2008年5月6日 上午 02:46
    版主
  • 謝謝小朱大
    我知道自己的錯誤了
    我應該輸入的是ImageUrl的資料行名稱
    我使用MSSMS
    在將我的查詢語句使用新增查詢實作
    便能看到該Table
    而該資料行的名稱就是n_pic_source
    跟資料庫內是一樣的

    所以要這樣寫
    Image1.ImageUrl = "images/" + objDS.Tables[0].Rows[0]["n_pic_source"].ToString();

    另外
    我發現這樣寫也可以喔
    Image1.ImageUrl = "images/" + objDS.Tables[0].Rows[0].ItemArray[0].ToString();


    列資料是甚麼意思呢
    2008年5月6日 上午 02:59
  • 列資料是指 "一列資料",也就是資料列

     

    2008年5月6日 上午 07:11
    版主