Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C# (http://www.go4expert.com/forums/c-sharp/)
-   -   storing image (http://www.go4expert.com/forums/storing-image-t17740/)

maifs 29May2009 20:14

storing image
 
i am trying to store a image in sqlserver database and retrieve the image from it.

Code:

    public class Item
    {
        private int code;
        private string name;
        private float price;
        private Category category;
        private byte[] photo;

        public Item()
        {
         
        }

        public Item(int code, string name)
        {
            this.Code = code;
            this.Name = name;
        }

        public Item(int code, string name, float price) : this(code,name)
        {
            this.Price = price; 
        }

        public int Code
        {
            get
            {
                return this.code;
            }
            set
            {
                this.code = value;
            }
        }

        public string Name
        {
            get
            {
                return this.name;
            }
            set
            {
                this.name = value;
            }
        }

        public float Price
        {
            get
            {
                return this.price;
            }
            set
            {
                this.price = value;
            }
        }

        public Category Category
        {
            get
            {
                return this.category;
            }
            set
            {
                this.category = value;
            }
        }

        public byte[] Photo
        {
            get { return this.photo; }
            set { this.photo = value; }
        }
    }

picture is stored in db but when i try to retrieve it,it returning null reference.

Code:

public class ItemsDAL
    {
        private string selectItemByCode = "Select * from ItemsWithCategory where code=@code";
        private string selectAllItems = "Select * from ItemWithCategory"; // View
        private string insertItem = "InsertImage";
        private string selectImage = "Select Picture from Items where code =107";

        public void InserItem(Item pic)
        {
         
            SqlConnection con = new SqlConnection(DALHelper.ConnectionString);
            SqlCommand cmd = new SqlCommand(this.insertItem,con);
         
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = this.insertItem;
            cmd.Parameters.Add(new SqlParameter("@photo", SqlDbType.Image));         
         
            con.Open();
            try
            {
              cmd.Parameters["@photo"].Value = pic.Photo;
              cmd.ExecuteNonQuery();
         
            }
            finally
            {
             
                con.Close();
            }
         

        }

        public byte[] GetPicture()
        {
            SqlConnection con = new SqlConnection(DALHelper.ConnectionString);
            SqlCommand cmd = new SqlCommand(this.selectImage, con);
            //cmd.Parameters.Add(new SqlParameter("@code", code));
     
            Item item = null;
            SqlDataReader dr = null;
            con.Open();
            try
            {
             
                dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    item.Photo = (byte[])(dr["Picture"]);
                }
            }
            finally
            {
                if (dr != null) dr.Close();
                con.Close();
            }
            return item.Photo;

        }
}




  public partial class ManageItemsForm : BaseForm
    {
        Item itm;
        ItemsDAL itemDal = new ItemsDAL();
     
        MemoryStream mem = new MemoryStream();
        public ManageItemsForm()
        {
            InitializeComponent();
            itm = new Item();
                     
        }

        private void ManageItemsForm_Load(object sender, EventArgs e)
        {

        }
     
        private void button1_Click(object sender, EventArgs e)
        {
                     
            itm.Photo = mem.GetBuffer();
            itemDal.InserItem(itm);
            this.pbxItem.Image.Save(mem, this.pbxItem.Image.RawFormat);
         
        }

        private void btnSelectCode_Click(object sender, EventArgs e)
        {
            itemDal.GetPicture();
            MemoryStream ms = new MemoryStream(itm.Photo);         
            this.pbxItem.Image = Image.FromStream(ms);
        }       
    }

it returns null reference when i try to debug it.
in this line, it throws an exception

item.Photo = (byte[])(dr["Picture"]);


All times are GMT +5.5. The time now is 05:54.