ذخیره تصویر در دیتابیس اکسس
سلام بچه ها.
من یه برنامه نوشتم که عکس رو ذخیره میکنه و بازیابی هم میکنه فقط میخوام وقتی عکس رو با شماره آن ذخیره میکنم واسه بازیابیش هروقت آی دی یه عکس رو دادم همون رو بازیابی کنی ولی نمیدونم چجور باید این کار رو انجام بدم.
اگر کسی میدونه کمک کنه.
با تشکر
نقل قول: ذخیره تصویر در دیتابیس اکسس
دوست عزیز کار خیلی راحته
یک فیلد در دیتابیس بنام مثلا شماره عکس میسازی زمانی که عکس را ذخیره میکنی یک شماره به آن میدهی بعدا موقع باز یابی شرط میگذاری کا اگر شماره وارد شده برابر باشد با شماره های ذخیره شده در دیتابیس آنرا بازیابی کند
نقل قول: ذخیره تصویر در دیتابیس اکسس
نقل قول:
نوشته شده توسط
alexmcse
دوست عزیز کار خیلی راحته
یک فیلد در دیتابیس بنام مثلا شماره عکس میسازی زمانی که عکس را ذخیره میکنی یک شماره به آن میدهی بعدا موقع باز یابی شرط میگذاری کا اگر شماره وارد شده برابر باشد با شماره های ذخیره شده در دیتابیس آنرا بازیابی کند
سلام.
همین کار هم انجام دادم ولی نشد.
برنامه ای که گذاشتم دیدین؟
2 ضمیمه
نقل قول: ذخیره تصویر در دیتابیس اکسس
این عکس فرم برنامه هست:
ضمیمه 104959
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Imaging;
using System.Data.OleDb;
using EMsgBox;
using System.Reflection;
using System.Diagnostics;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
OleDbConnection con=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Setad Pishgiry.mdb");
OleDbDataAdapter da;
DataSet ds = new DataSet();
string s1;
private void Btn_Show_Click(object sender, EventArgs e)
{
s1 = "Select * From Tb_Pic Where ID='"+textBox1.Text+"'";
OleDbDataAdapter da = new OleDbDataAdapter(s1, con);
DataSet ds = new DataSet();
da.Fill(ds, "Tb_Pic");
if (textBox1.Text != "")
{
if (ds.Tables["Tb_Pic"].Rows.Count != 0)
{
OleDbDataAdapter da2 = new OleDbDataAdapter("Select * from Tb_Pic", con);
DataSet ds2 = new DataSet();
da2.Fill(ds2);
byte[] b = (byte[])ds2.Tables[0].Rows[Convert.ToInt32(textBox1.Text)][0];
MemoryStream mem = new MemoryStream(b);
Image im = Image.FromStream(mem);
pictureBox1.Image = im;
}
}
else
{
Msg.Show("Please Enter The Pic Number", "Error", MsgIcon.Error, MsgButton.Ok);
}
}
private void Btn_Add_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
Image im = null;
dlg.Filter = "All Pictures |*.bmp;*.gif;*.jpg|Bitmaps|*.bmp";
if (dlg.ShowDialog() == DialogResult.OK)
{
pictureBox1.ImageLocation = dlg.FileName;
textBox3.Text = dlg.FileName;
}
}
private void Btn_Save_Click(object sender, EventArgs e)
{
Image im = null;
if (textBox3.Text != "")
{
s1 = "Select * From Tb_Pic Where ID='" + textBox2.Text + "'";
pictureBox1.ImageLocation = textBox3.Text;
im = new Bitmap(pictureBox1.ImageLocation);
MemoryStream mstr = new MemoryStream();
im.Save(mstr, im.RawFormat);
byte[] arrimage = mstr.GetBuffer();
OleDbDataAdapter da = new OleDbDataAdapter("Select * from Tb_Pic", con);
DataSet ds = new DataSet();
da.Fill(ds);
DataRow dr = ds.Tables[0].NewRow();
dr[0] = arrimage;
dr[1] = textBox2.Text;
ds.Tables[0].Rows.Add(dr);
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
da.Update(ds.Tables[0]);
textBox3.Clear();
pictureBox1.BackgroundImage = null;
}
else
{
Msg.Show("Please Enter The Pic ", "Error", MsgIcon.Error, MsgButton.Ok);
}
}
}
}
بانک اطلاعاتی هم با اکسس هست.
اینم یه عکس از بانکمه:
ضمیمه 104960
با تشکر
نقل قول: ذخیره تصویر در دیتابیس اکسس
کسی نیست که بتونه جوابم رو بده؟
نقل قول: ذخیره تصویر در دیتابیس اکسس
نقل قول:
نوشته شده توسط
R_khaleghi
کسی نیست که بتونه جوابم رو بده؟
درود
منظورتون از بازیابی همون فیلتر نمودن بر اساس id عکسه دیگه مگه نه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
نقل قول: ذخیره تصویر در دیتابیس اکسس
آره. وقتی که آی دی عکس رو زدم عکس مورد نظر نمایش بده.
1 ضمیمه
نقل قول: ذخیره تصویر در دیتابیس اکسس
نقل قول:
نوشته شده توسط
R_khaleghi
آره. وقتی که آی دی عکس رو زدم عکس مورد نظر نمایش بده.
بفرما عزیز درست شد
البته توجه داشته باشین که من فقط یک عکس توی بانک ذخیره کردم با آی دی1 بقیه رو هم خودتون زحمتش رو بکشین ذخیره کنین و مشاهده کنین وحالشو ببرین :لبخند::لبخند::لبخند:
نقل قول: ذخیره تصویر در دیتابیس اکسس
سلام دوست گرامی.
در ابتدا تشکر میکنم از کمکتون.
ولی اگر آی دی نا مرتب وارد بشه این برنامه کار نمیکنم. مثلا کد ملی بخوایم بزنم این جور کار نمیکنه.
میخوام ارتباط بدم به جدول member که داخل بانک اطلاعاتی دارمش.
واسه این راهی بنظرتون میرسه؟
نقل قول: ذخیره تصویر در دیتابیس اکسس
نقل قول:
نوشته شده توسط
R_khaleghi
این عکس فرم برنامه هست:
ضمیمه 104959
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Imaging;
using System.Data.OleDb;
using EMsgBox;
using System.Reflection;
using System.Diagnostics;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
OleDbConnection con=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Setad Pishgiry.mdb");
OleDbDataAdapter da;
DataSet ds = new DataSet();
string s1;
private void Btn_Show_Click(object sender, EventArgs e)
{
s1 = "Select * From Tb_Pic Where ID='"+textBox1.Text+"'";
OleDbDataAdapter da = new OleDbDataAdapter(s1, con);
DataSet ds = new DataSet();
da.Fill(ds, "Tb_Pic");
if (textBox1.Text != "")
{
if (ds.Tables["Tb_Pic"].Rows.Count != 0)
{
OleDbDataAdapter da2 = new OleDbDataAdapter("Select * from Tb_Pic", con);
DataSet ds2 = new DataSet();
da2.Fill(ds2);
byte[] b = (byte[])ds2.Tables[0].Rows[Convert.ToInt32(textBox1.Text)][0];
MemoryStream mem = new MemoryStream(b);
Image im = Image.FromStream(mem);
pictureBox1.Image = im;
}
}
else
{
Msg.Show("Please Enter The Pic Number", "Error", MsgIcon.Error, MsgButton.Ok);
}
}
private void Btn_Add_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
Image im = null;
dlg.Filter = "All Pictures |*.bmp;*.gif;*.jpg|Bitmaps|*.bmp";
if (dlg.ShowDialog() == DialogResult.OK)
{
pictureBox1.ImageLocation = dlg.FileName;
textBox3.Text = dlg.FileName;
}
}
private void Btn_Save_Click(object sender, EventArgs e)
{
Image im = null;
if (textBox3.Text != "")
{
s1 = "Select * From Tb_Pic Where ID='" + textBox2.Text + "'";
pictureBox1.ImageLocation = textBox3.Text;
im = new Bitmap(pictureBox1.ImageLocation);
MemoryStream mstr = new MemoryStream();
im.Save(mstr, im.RawFormat);
byte[] arrimage = mstr.GetBuffer();
OleDbDataAdapter da = new OleDbDataAdapter("Select * from Tb_Pic", con);
DataSet ds = new DataSet();
da.Fill(ds);
DataRow dr = ds.Tables[0].NewRow();
dr[0] = arrimage;
dr[1] = textBox2.Text;
ds.Tables[0].Rows.Add(dr);
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
da.Update(ds.Tables[0]);
textBox3.Clear();
pictureBox1.BackgroundImage = null;
}
else
{
Msg.Show("Please Enter The Pic ", "Error", MsgIcon.Error, MsgButton.Ok);
}
}
}
}
بانک اطلاعاتی هم با اکسس هست.
اینم یه عکس از بانکمه:
ضمیمه 104960
با تشکر
دوست گرامی شما از دستور سلکت استفاده کردی نه اینزرت ونه آپدیت
در برنامه ای که گذاشتی
برنامه شما سلکت میکند
آقای khokhan زحمت مثال در این مورد را کشیده اند تشکر میکنم از آقای khokhan
نقل قول: ذخیره تصویر در دیتابیس اکسس
نقل قول:
نوشته شده توسط
R_khaleghi
سلام دوست گرامی.
در ابتدا تشکر میکنم از کمکتون.
ولی اگر آی دی نا مرتب وارد بشه این برنامه کار نمیکنم. مثلا کد ملی بخوایم بزنم این جور کار نمیکنه.
میخوام ارتباط بدم به جدول member که داخل بانک اطلاعاتی دارمش.
واسه این راهی بنظرتون میرسه؟
خوب خیلی ساده است :لبخند: " اتو نامبر" از سیستم شماره گزاری اتوماتیک برای ذخیره آی دی استفاده کنید
به این شکل که با هربار لود تصویر جدید آخرین شماره ثبت شده در بانک رو می خونین و یه دونه می زارین روش وتویه یک لیبل نمایش می دین وهنگام ثبت مسیر تصویر اون آیدی رو به عنوان کلید ذخیره می کنین و دفعه بعد به هم چنین و دست کاربر رو از ایجاد کد نامرتب کوتاه می کنین