اگه نظر من رو میخواهید عکس رو در داخل دیتابیس ذخیره کنید و باقی اطلاعات رو وارد کنید.داخل دیتابیس یه فیلد تعریف کنید برای عکس نوش رو بزارید varbinary(MAX) و با این دستور اول عکس رو کوچیک کنید که حجم عکس زیاد نباشه.و عکس رو ذخیره کنید بهتر هستش چون ممکنه عکس جابه جا بیش و دیگه برای مشاهده وجود نداشته باشه.این کد برای تغییر اندازه کردن عکس . // کاراهای مخصوص تغییر اندازه عکس
#region Private Members
private Image picimage= Properties.Resources.EmployeesNoPic;
#endregion
#region Propersties
private int _imgwidth
{
get
{
return 120;
}
}
private int _imgHieght
{
get
{
return 140;
}
}
#endregion
#region Public Function
public Bitmap ResizeBitMap(Bitmap b, int nWidth, int nHeight)
{
Bitmap result = new Bitmap(nWidth, nHeight);
using (Graphics g = Graphics.FromImage((Image)result))
g.DrawImage(b, 0, 0, nWidth, nHeight);
return result;
}
#endregion
این کد برای باز کردن عکس
private void btnPic_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog fd = new OpenFileDialog();
fd.Filter = "(*.JPG) تصاویر|*.jpg|" +
"(*.GIF) تصاویر|*.Gif" +
"(*.PNG) تصاویر|*.PNG" +
"" +"(*.*) تمام تصاویر|*.*";
fd.Title = "انتخاب تصویر";
fd.ShowDialog();
float imgWidth = System.Drawing.Image.FromFile(fd.FileName).Physica lDimension.Width;
float imgHeight = System.Drawing.Image.FromFile(fd.FileName).Physica lDimension.Height;
picimage = System.Drawing.Image.FromFile(fd.FileName);
if (imgWidth > _imgwidth || imgHeight > _imgwidth)
{
string strMessage = "تصویر انتخابی شما نباید بزرگتر از {1}*{0} پیکسل باشد" + "\n" +
"آیا تمایل به تغییر اندازه عکس دارید ؟";
if (PersianMessageBox.Show(string.Format(strMessage, _imgwidth, _imgHieght), "پیام سیستم", PersianMessageBox.Buttons.YesNo, PersianMessageBox.Icon.Warning) == DialogResult.Yes)
{
picimage = ResizeBitMap((Bitmap)picimage, _imgwidth, _imgHieght);
Pictcurebox1.Image = picimage;
}
else
{
picimage = Properties.Resources.EmployeesNoPic;
Pictcurebox1.Image = picimage;
}
}
else
{
Pictcurebox1.Image = picimage;
}
}
catch { }
}
این کد هم برای ذخیره اطلاعات
private void BtnAdd_Click(object sender, EventArgs e)
{
if (TxtAddNumber.Text.Trim() == "")
{
errorProvider1.SetError(TxtAddNumber, "لطفاً شماره ثبت شرکت را وارد فرمائید");
TxtAddNumber.Focus();
return;
}
if (cmbNoyeMosse.Text.Trim() == "")
{
errorProvider1.SetError(cmbNoyeMosse, "لطفاَ نوع موسسه را وارد فرمایید");
cmbNoyeMosse.Focus();
return;
}
if (TxtNameCompaney.Text.Trim() == "")
{
errorProvider1.SetError(TxtNameCompaney, "لطفاً نام شرکت را وارد فرمائید");
TxtNameCompaney.Focus();
return;
}
if (TxtNameDefter.Text.Trim() == "")
{
errorProvider1.SetError(TxtNameDefter, "لطفاً نام دفتر را وارد فرمائید");
TxtNameDefter.Focus();
return;
}
if(CmbSex.Text.Trim()=="")
{
errorProvider1.SetError(CmbSex, "لطفاً جنسیت را تعریف فرمائید");
CmbSex.Focus();
return;
}
if (TxtNameAdmin.Text.Trim() == "")
{
errorProvider1.SetError(TxtNameAdmin, "لطفاً نام مدیر را وارد فرمائید");
TxtNameAdmin.Focus();
return;
}
if (TxtTel.Text.Trim() == "")
{
errorProvider1.SetError(TxtTel, "لطفاً شماره تماس را وارد فرمائید");
TxtTel.Focus();
return;
}
if (TxtCreateDate.Text.Trim() == "")
{
errorProvider1.SetError(TxtCreateDate, "لطفاً تاریخ احداث ایجاد شرکت را وارد فرمائید");
TxtCreateDate.Focus();
return;
}
if (TxtAddress.Text.Trim() == "")
{
errorProvider1.SetError(TxtAddress, "لطفاً آدرس شرکت را وارد فرمائید");
TxtAddress.Focus();
return;
}
if (TxtDistrbuite.Text.Trim() == "")
{
errorProvider1.SetError(TxtDistrbuite, "لطفاً شرح و وظایف شرکت را وارد فرمائید");
TxtDistrbuite.Focus();
return;
}
//if (Pictcurebox1.Image == null)
//{
// PersianMessageBox.Show("شما هیچ تصویری را برای این گذاینه انتخاب نکردید", "خطا در یافت تصویر", PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Error);
//}
else
{
try
{
MemoryStream ms = new MemoryStream();
try
{
Pictcurebox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
}
catch { }
byte[] arrPic = ms.GetBuffer();
ms.Close();
//SqlConnection con = new SqlConnection();
//con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DbPoshakSayeBan.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
db.Connect();
db.cmd = new SqlCommand();
db.cmd.Connection = db.con;
db.cmd.CommandText = "insert into TBL_Compane (C_AddNumber,C_NameDefterMaly,C_NoyeMosse,C_NameMo sse,C_Sex,C_Admin,C_Distrbuite,C_Tel,C_Fax,C_DateC reate,C_Addreass,C_Logo) Values " +
"(@C_AddNumber,@C_NameDefterMaly,@C_NoyeMosse,@C_N ameMosse,@C_Sex,@C_Admin,@C_Distrbuite,@C_Tel,@C_F ax,@C_DateCreate,@C_Addreass,@C_Logo)";
//cmd.Parameters.AddWithValue("@C_ID", Int32.Parse(txtid.Text));
db.cmd.Parameters.AddWithValue("@C_AddNumber",TxtA ddNumber.Text);
db.cmd.Parameters.AddWithValue("@C_NameDefterMaly" , TxtNameDefter.Text);
db.cmd.Parameters.AddWithValue("@C_NoyeMosse", cmbNoyeMosse.SelectedItem.ToString());
db.cmd.Parameters.AddWithValue("@C_NameMosse", TxtNameCompaney.Text);
db.cmd.Parameters.AddWithValue("@C_Sex", CmbSex.SelectedItem.ToString());
db.cmd.Parameters.AddWithValue("@C_Admin", TxtNameAdmin.Text);
db.cmd.Parameters.AddWithValue("@C_Distrbuite", TxtDistrbuite.Text);
db.cmd.Parameters.AddWithValue("@C_Tel", TxtTel.Text);
db.cmd.Parameters.AddWithValue("@C_Fax", TxtFax.Text);
db.cmd.Parameters.AddWithValue("@C_DateCreate", TxtCreateDate.Text);
db.cmd.Parameters.AddWithValue("@C_Addreass", TxtAddress.Text);
db.cmd.Parameters.AddWithValue("@C_Logo", SqlDbType.Image).Value = arrPic;
db.cmd.ExecuteNonQuery();
db.Disconnect();
FrmCompane_Load(null, null);
}
catch(Exception ex)
{
if (!ShowFrienMessge)
PersianMessageBox.Show(ex.Message);
else
PersianMessageBox.Show("اشکال در ذخیره اطلاعات / خطا 103", "خطا", PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Error);
//if (db.LastError != "")
// PersianMessageBox.Show("خطا 103" + db.LastError);
}
}
به وسیله این می ونید اطلاعات خود را ذخیره کنید و تصویر هم با حجم کم ذخیره مکنید که سیستم سنگین نشه اگگه حجک عکس بیشتر بود کم میشه. و به صورت باینری ذخیره میشه.