Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > รบกวนพี่ๆช่วยผมหน่อยครับ เกี่ยวกับการใส่รูปใน SQL server 2005 ครับ



 

รบกวนพี่ๆช่วยผมหน่อยครับ เกี่ยวกับการใส่รูปใน SQL server 2005 ครับ

 



Topic : 072732

Guest




คือผมกำลังเขียนโปรแกรมที่ต้องมีการเรียกรูปจากฐานข้อมูลมาแสดงอะครับ แต่ผมไม่รู้ว่าจะเก็บรูปไว้ในฐานข้อมูลอย่างไร พยายามหาข้อมูลมาหลายวัน รู้แต่ว่าต้องเก็บเป็น Path ของรูป

ตอนนี้ที่ผมทำไว้คือ สร้างฟิล img มีชนิดเป็น text แล้วเก็บ path ประมาณนี้ครับ D:\image\01.jpg แต่ก็ยังรันไม่ผ่านครับ T-T มันขึ้นแบบนี้อะครับ

Unable to cast object of type 'System.String' to type 'System.Byte[]'.

โค๊ดที่เขียนเป็นแบบนี้ครับ

Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;    
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace DecistionSupportApplication
{
    public partial class decistionForm : Form
    {
        public decistionForm()
        {
            InitializeComponent();
        }
        private void decistionForm_Load(object sender, EventArgs e)
        {

        }

        private void exitButton_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("คูณต้องการออกจากระบบใช่หรือไม่ ?", "โปรดยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                Application.Exit();
        }

        private void seacthButton_Click(object sender, EventArgs e)
        {
            string conStr = @"Data Source=ARMSPRITE-PC\SQLEXPRESS;
			Initial Catalog=master;
            Integrated Security=SSPI;";

            SqlConnection connection = new SqlConnection(conStr);
            connection.Open();

            string sql = "SELECT* FROM DecistionNotebook";
            int nCheckCB = priceComboBox.SelectedIndex;
            if (nCheckCB == -1)
            {
                MessageBox.Show("กรุณาเลือกราคาที่ต้องการ", "เกิดข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }
            switch (priceComboBox.SelectedItem.ToString())
            {
                case "ต่ำกว่า 10,000 บาท":
                    sql += " WHERE price BETWEEN 0 AND 10000"; break;
                case "10,001 - 20,000 บาท":
                    sql += " WHERE price BETWEEN 10001 AND 20000"; break;
                case "20,001 - 30,000 บาท":
                    sql += " WHERE price BETWEEN 20001 AND 30000"; break;
                case "30,001 - 40,000 บาท":
                    sql += " WHERE price BETWEEN 30001 AND 40000"; break;
                case "40,001 - 50,000 บาท":
                    sql += " WHERE price BETWEEN 40001 AND 50000"; break;
                case "50,001 - 60,000 บาท":
                    sql += " WHERE price BETWEEN 50001 AND 60000"; break;
                case "แสดงทั้งหมด":
                    sql += " WHERE price BETWEEN 0 AND 100000 "; break;
            }

            int nCheckCB2 = brandComboBox.SelectedIndex;
            if (nCheckCB2 == -1)
            {
                MessageBox.Show("กรุณาเลือกยี่ห้อที่ต้องการ", "เกิดข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }
            switch (brandComboBox.SelectedItem.ToString())
            {
                case "Acer":
                    sql += " AND brand = 'Acer'"; break;
                case "Asus":
                    sql += " AND brand = 'Asus'"; break;
                case "Compaq":
                    sql += " AND brand = 'Compaq'"; break;
                case "Dell":
                    sql += " AND brand = 'Dell'"; break;
                case "Fujitsu":
                    sql += " AND brand = 'Fujitsu'"; break;
                case "HP":
                    sql += " AND brand = 'HP'"; break;
                case "Sony":
                    sql += " AND brand = 'Sony'"; break;
                case "Sumsung":
                    sql += " AND brand = 'Samsung'"; break;
                case "Toshiba":
                    sql += " AND brand = 'Toshiba'"; break;
                case "แสดงทั้งหมด":
                    sql += ""; break;
            }

            if (eVGARadioButton.Checked)
            {
                sql += " AND grapCard <> 'On Broad'";
            }
            else if (onBRadioButton.Checked)
            {
                sql += " AND grapCard = 'On Broad'";
            }

            SqlCommand command = new SqlCommand(sql, connection);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            data = new DataSet();
            adapter.Fill(data, "notebook");

            numRows = data.Tables["notebook"].Rows.Count;
            ShowData();
            connection.Close();
        }

        private DataSet data;
        private int curRow, numRows;
        private void ShowData()
        {
            DataTable DecistionNotebook = data.Tables["notebook"];
            if (DecistionNotebook.Rows.Count == 0)
            {
                MessageBox.Show("ไม่พบข้อมูลกรุณาเลือกใหม่อีกครั้ง", "ขออภัย", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            prodIDTextBox.Text = DecistionNotebook.Rows[curRow]["prodID"].ToString();
            brandTextBox.Text = DecistionNotebook.Rows[curRow]["brand"].ToString();
            modelTextBox.Text = DecistionNotebook.Rows[curRow]["model"].ToString();
            cpuTextBox.Text = DecistionNotebook.Rows[curRow]["CPU"].ToString();
            grapTextBox.Text = DecistionNotebook.Rows[curRow]["grapCard"].ToString();
            ramTextBox.Text = DecistionNotebook.Rows[curRow]["RAM"].ToString();
            harddiscTextBox.Text = DecistionNotebook.Rows[curRow]["harddisk"].ToString();
            priceTextBox.Text = DecistionNotebook.Rows[curRow]["price"].ToString();
            discDTextBox.Text = DecistionNotebook.Rows[curRow]["discDrive"].ToString();
            discPTextBox.Text = DecistionNotebook.Rows[curRow]["display"].ToString();
            wCamTextBox.Text = DecistionNotebook.Rows[curRow]["web_camera"].ToString();
            battTextBox.Text = DecistionNotebook.Rows[curRow]["battery"].ToString();
            wlanTextBox.Text = DecistionNotebook.Rows[curRow]["wireless_lan"].ToString();
            weightTextBox.Text = DecistionNotebook.Rows[curRow]["weight"].ToString();
            warranTextBox.Text = DecistionNotebook.Rows[curRow]["warranty"].ToString();
            usbTextBox.Text = DecistionNotebook.Rows[curRow]["portUSB"].ToString();

            byte[]pic = (byte[])data.Tables["notebook"].Rows[0]["img"];
            MemoryStream streamPic = new MemoryStream(pic);
            picBox.Image = Bitmap.FromStream(streamPic);

            CurRowlabel.Text = "รายการที่ "+ (curRow + 1) + " จากรายการสินค้าทั้งหมด " + numRows +" รายการ";
        }

        private void firstButton_Click(object sender, EventArgs e)
        {
            curRow = 0;
            ShowData();
        }

        private void backbutton_Click(object sender, EventArgs e)
        {
            if (curRow > 0)
            {
                curRow -= 1;
                ShowData();
            }
        }

        private void nextbutton_Click(object sender, EventArgs e)
        {
            if (curRow < (numRows - 1))
            {
                curRow += 1;
                ShowData();
            } 
        }

        private void lastButton_Click(object sender, EventArgs e)
        {
            curRow = numRows - 1;
            ShowData();
        }
    }
}




Tag : Ms SQL Server 2005, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-01-26 22:12:17 By : aRMSprite View : 1226 Reply : 8
 

 

No. 1



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


byte[]pic = (byte[])data.Tables["notebook"].Rows[0]["img"];

img น่าจะเป็น ชื่อไฟล์เฉยๆ หรือเปล่ามันไม่ใช่ byte[] นะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-26 22:28:57 By : ikikkok
 


 

No. 2

Guest


คือ เป็น Code ที่ดูมาจากหนังสืออะครับ ลองเปลี่ยนดูแล้ว แต่ไม่ผ่านครับผม เหมือนว่ามันอ้างอิงคอลัมที่เก็บข้อมูลอะครับ T-T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-26 23:52:55 By : aRMSprite
 

 

No. 3

Guest


รบกวนพี่ๆ เรื่อง การจัดเก็บรูปภาพในฐานข้อมูลด้วยครับ T-T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-26 23:59:43 By : aRMSprite
 


 

No. 4

Guest


รบกวนด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-27 04:02:51 By : aRMSprite
 


 

No. 5

Guest




รบกวนด้วยครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-27 07:36:54 By : aRMSprite
 


 

No. 6



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


จากโค้ดตรงนี้

Code (C#)
byte[]pic = (byte[])data.Tables["notebook"].Rows[0]["img"]; 
MemoryStream streamPic = new MemoryStream(pic); 
picBox.Image = Bitmap.FromStream(streamPic); 


ดูเหมือน img มิได้เก็บ Path หรอก แต่น่าจะเก็บ Content ของรูปเลยมากกว่า
หนังสือมันบอกว่าให้เก็บ img เป็น Text เหรอ
ดูผิดหรือเปล่าครับ

ดูตัวอย่างจากนี่ล่ะกัน เป็นตัวอย่างการเก็บรูปในฐานข้อมูล และการเอารูปจากฐานข้อมูลมาแสดงผล
http://www.codeproject.com/Articles/10861/Storing-and-Retrieving-Images-from-SQL-Server-usin
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-27 09:19:15 By : watcharop
 


 

No. 7

Guest


ขอบคุณครับ แล้วพอจะมีรูปแบบของพาทที่ใช้เก็บไหมครับ พอดีโปรแกรมที่่ผมทำมันดึงรูปอย่างเดียวอะครับ ไม่มีเก็บีูป รบกวนด้วยครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-27 18:00:30 By : aRMSprite
 


 

No. 8



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


ไม่รู้ปัญหาจริงๆของคุณคืออะไร

แต่นี่คือตัวอย่างของการเอารูปมาแสดงใน PictureBox ที่อยู่บนฟอร์ม
โดยเราต้องรู้แล้วว่ารูปนั้นอยู่ที่ไหนในคอมพิวเตอร์ มีชื่อว่าอย่างไร
http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.aspx
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-01-28 10:39:00 By : watcharop
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนพี่ๆช่วยผมหน่อยครับ เกี่ยวกับการใส่รูปใน SQL server 2005 ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่