ذخیره عکس در بانک اطلاعاتی (سی شارپ)

چهارشنبه 6 آذر 1392

سلام در این مقاله میخواهیم تصاویر رو در خود بانک اطلاعاتی ذخیره کنیم

ذخیره عکس در بانک اطلاعاتی (سی شارپ)

سلام در این مقاله میخواهیم تصاویر رو در خود بانک اطلاعاتی ذخیره کنیم

ابتدا باید بانک را ایجاد کنیم

میتوانید بانکی در SQL با نام SaveImageInDB ایجاد کنید و اسکریپت زیر را روی آن اجرا کنید تا جدول مورد نظر ساخته بشه

 

USE [SaveImageInDB]
GO
/****** Object:  Table [dbo].[Persons]    Script Date: 11/27/2013 13:35:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Persons](
	[PersonID] [int] IDENTITY(1,1) NOT NULL,
	[PersonName] [nvarchar](150) NOT NULL,
	[PersonImage] [image] NOT NULL,
 CONSTRAINT [PK_Persons] PRIMARY KEY CLUSTERED 
(
	[PersonID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

مرحله بعد ساختن برنامه اصلی

ابتدا فرم را بسازید

کد ها به شرح ذیل می باشد

کد کلید انتخاب تصویر

 

        OpenFileDialog op=new OpenFileDialog();
            if(op.ShowDialog()==DialogResult.OK)
            {
                txtImage.Text = op.SafeFileName;
                pictureBox1.ImageLocation = op.FileName;
            }

کد کلید ذخیره در بانک

 

     SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=SaveImageInDB;User ID=sa;Password=123");
            string query = "Insert Into Persons (PersonName,PersonImage) Values (@PersonName,@PersonImage)";
            SqlCommand com=new SqlCommand(query,con);
            com.Parameters.AddWithValue("@PersonName", txtName.Text);
            com.Parameters.AddWithValue("@PersonImage", ImageToByte(pictureBox1.Image));
            con.Open();
            com.ExecuteNonQuery();
            con.Close();
            BindGrid();

خب برای ذخیره تصویر در بانک ما جنس ستون مورد نظر را از نوع Image در نظر گرفتیم

که در این باید مقادیر به صورت Byte ذخیره شوند

در کدها متدی وجود دارد که تصویر را گرفته و به صورت Byte خروجی برمیگرداند

     public static byte[] ImageToByte(Image img)
        {
            ImageConverter converter = new ImageConverter();
            return (byte[])converter.ConvertTo(img, typeof(byte[]));
        }

برای بایند کردن تصاویر به گریدویو هم باید جنس ستون از نوع Image باشه

نمونه ضمیمه کردم

امیدوارم خوشتون اومده باشه

 

موفق و پیروز باشید

 

فایل های ضمیمه

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 38k بازدید
  • 50 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید