none
要讀第二筆資料表中blob資料,無法選取"列序數" RRS feed

  • 問題

  • 大家好:

        我從mysql中抓取的資料存成資料表從DATAGRIDVIEW中顯示,如下所示

         id    name        hight          figure(Blob)

         0     apple        120           (已存入,以讀出)

         0     banana     137           (已存入,讀不出來)

        figure欄位以Blob形式存入圖片,確定有存入,因為一次讀取兩筆,

         因為Getbyte只能選擇行數,如果我想讀第二筆figure可以怎麼改呢?

        我的程式碼如下:

        MySqlDataReader reader = cmd.ExecuteReader();
                reader.Read();
                byte[] buffer = null;
                byte[] buffer2 = null;
                if (reader.HasRows)
                {
                    long len = reader.GetBytes(3, 0, null, 0, 0);
                    buffer = new byte[len];
                    len = reader.GetBytes(3, 0, buffer, 0, (int)len);   //這邊確定圖片有跑出來
                    long len2 = reader.GetBytes(3, 1, null, 0, 0);      //Getbyte(行序數,index,byte,int,int)找不到怎麼選擇"列序數"

                    buffer2 = new byte[len2];
                    len2 = reader.GetBytes(3, 1, buffer2, 0, (int)len2);

                    MemoryStream ms = new MemoryStream(buffer);
                    Bitmap img = new Bitmap(ms);
                    MemoryStream ms2 = new MemoryStream(buffer2);
                    Bitmap img2 = new Bitmap(ms2);

                    pictureBox1.Image = img;
                    pictureBox2.Image = img2;
                }

    2019年8月1日 上午 06:28

解答

  • 如果您是要讀二筆記錄的第二筆, 只要再呼叫:

    reader.Read();   //再讀一筆

    • 已標示為解答 tsailun 2019年8月6日 上午 05:25
    2019年8月1日 上午 08:46

所有回覆