PDA

View Full Version : ذخیره تصویر در دیتابیس از طریق dataset



sh1369
دوشنبه 23 فروردین 1395, 00:06 صبح
سلام رفقا
من رو یه پروژه کارمی کنم که تصویر رو از اسکنر می گیره و توی picturebox نمایش می ده و بعد از اسکن می خوام از طریق دیتاست توی بانک ذخیرش کنم ولی نمی دونم چجوری باید ذخیره کنم
البته نمونه های مختلف رو تو سایت دیدم اما همش از روش های قدیم ado.net استفاده کرده بودن ممنون می شم کمکم کنید .
راستی بانکم هم اکسس هست (مجبورم از اکسس استفاده کنم)

khokhan
چهارشنبه 25 فروردین 1395, 17:18 عصر
یعنی واقعا هیچ کسی نتونست کمک کنه ؟!!!!
ای بابا خودمم نتونستم کاری کنم
عیب نداره ولی منتظر کمکتون هستم
ممنون
شاید خیلی ها بخوان کمکتون کنن اما متوجه سوالتون نمی شن :لبخند: .... شما دارین از روشی استفاده می کنین که زیاد متداول نیست و کمتر کسی از این روش استفاده می کنه
قبل از هرچیزی یه کوئری درج توی دیتاست موجود ایجاد می کنی و در اون کوئری به تعداد فیلدهاتون بایستی پارامتر داشته باشین
وطبیعتا فیلد تصویرتون هم یه پارامتر خواهد داشت :

140002

حتما با ایجاد کوئری توی دیتاست آشنا هستین دیگه

140003
بعد از این مرحله به راحتی می تونین در رویداد کلیک باتن درج از دیتاآداپتور مربوط به دیتاست نمونه سازی کنین
و کوئری داخل دیتاست رو فراخوانی کرده و مقادیر لازم رو به پارامتر ها اختصاص بدین
و نکته مهم در اینجا اینه که یه متد برای تبدیل تصویر به باینری داشته باشین و خروجی اونو به پارامتر مربوط به فیلد تصویر اختصاص بدین
مبدل تصویر به باینری :

public byte[] convertImageToByteArray(System.Drawing.Image image)
{
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
}

کد مربوط به باتن درج هم به این شکل می شه :

private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(textBox1.Text) || string.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show( "مقادیر خواسته شده را به دقت کامل نمائید");

}
else
{
byte[] imageBytes = convertImageToByteArray(pictureBox1.Image);
DataSet1TableAdapters.Tbl_userTableAdapter adapter = new DataSet1TableAdapters.Tbl_userTableAdapter();
DataSet1.Tbl_userDataTable table = adapter.GetData();
adapter.InsertQuery(textBox1.Text, textBox1.Text, imageBytes);
this.tbl_userTableAdapter.Fill(this.dataSet1.Tbl_u ser);

MessageBox.Show("ثبت گزینه جدید با موفقیت انجام پذیرفت ");

}
}