الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عرض صورة من قاعدة البيانات لتقرير الفيجول استيديو

بدأه كارم سامي في 7 مارس 2014 · 3 رد · 747 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ,,

 

كيف اعرض صورة من قاعدة البيانات لتقرير الفيجول استيديو (الاساسي وليس كريستال ريبورت ) ؟؟؟

#2

السلام عليكم

 

هذا مثال باستخدام قاعدة بيانات اكسس ...مع النصيحة لا تخزن الصور فى قاعدة البيانات وفقط خزن مسار الملف بينما احفظ الصور بداخل مجلد...حفاظا على حجم قاعدة البيانات

المثال عبارة عن فورم وبه reportviewer  و 3 button و picturebox

زر لاستعراض الصور من الكمبيوتر وعرضها فى بيكتر بوكس

الكود

 OpenFileDialog openDlg = new OpenFileDialog();
            openDlg.Filter = "All jpg files | *.jpg";
            string filter = openDlg.Filter;
            openDlg.Title = "Open a jpg File";
            if (openDlg.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Image.FromFile(openDlg.FileName);
            }

زر لحفظ الصورة من البيكشربوكس لقاعدة البيانات DB.ACC

الكود

  OleDbConnection myConnection = null;
            try
            {
               
                byte[] imagedata = imageToByteArray(pictureBox1.Image);

                myConnection = new OleDbConnection(ConnectionString);
                OleDbCommand myCommand = new OleDbCommand("INSERT INTO T1 (PIC) VALUES (?)", myConnection);
                OleDbParameter myParameter = new OleDbParameter("@PIC", OleDbType.LongVarBinary, imagedata.Length);
                myParameter.Value = imagedata;
                myCommand.Parameters.Add(myParameter);

            
                myConnection.Open();
                myCommand.ExecuteNonQuery();
            }
            finally
            {
                myConnection.Close();
            }

واخير زر لعرض تحميل البيانات من الجدول وعرضها بالتقرير.... حيث تقوم بنشاء تقرير واضافه Dataset  للتقرير وتم تسميتها ds

حيث يتم اضافة Image  من ToolBox  للتقرير وتعديل الخصائص لها كالتالى:

Select ImageSource =DataBase

Use This feild=Choose your filed from dataset that hold photo

Use this MIM type=Choose the image type.. 

الكود

 using (OleDbConnection cn = new OleDbConnection(ConnectionString))
            {
                cn.Open();
                using (OleDbCommand cmd = new OleDbCommand("select * FROM T1", cn))
                {

                    using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
                    {
                        DataSet ds = new DataSet();
                        da.Fill(ds);
                        //ReportDataSource rds = new ReportDataSource("DataSet1", ds.Tables[0]);
                        //reportViewer1.LocalReport.DataSources.Clear();
                        //reportViewer1.LocalReport.DataSources.Add(rds);
                        //reportViewer1.LocalReport.Refresh();
                        reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
                        reportViewer1.LocalReport.DataSources.Clear();
                        reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ds", ds.Tables[0]));
                        reportViewer1.LocalReport.Refresh();
                        reportViewer1.RefreshReport();


                    }
                }
            }

كود الفورم كامل

using Microsoft.Reporting.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace RDL_CPICTURE
{
    public partial class Form1 : Form
    {
        private string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DB.accdb";
        public Form1()
        {
            InitializeComponent();
        }
        public byte[] imageToByteArray(System.Drawing.Image imageIn)
        {
            using (var ms = new MemoryStream())
            {
                imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                return ms.ToArray();
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            OleDbConnection myConnection = null;
            try
            {
               
                byte[] imagedata = imageToByteArray(pictureBox1.Image);

                myConnection = new OleDbConnection(ConnectionString);
                OleDbCommand myCommand = new OleDbCommand("INSERT INTO T1 (PIC) VALUES (?)", myConnection);
                OleDbParameter myParameter = new OleDbParameter("@PIC", OleDbType.LongVarBinary, imagedata.Length);
                myParameter.Value = imagedata;
                myCommand.Parameters.Add(myParameter);

     
                myConnection.Open();
                myCommand.ExecuteNonQuery();
            }
            finally
            {
                myConnection.Close();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDlg = new OpenFileDialog();
            openDlg.Filter = "All jpg files | *.jpg";
            string filter = openDlg.Filter;
            openDlg.Title = "Open a jpg File";
            if (openDlg.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Image.FromFile(openDlg.FileName);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'DBDataSet.T1' table. You can move, or remove it, as needed.
            this.T1TableAdapter.Fill(this.DBDataSet.T1);

            this.reportViewer1.RefreshReport();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            using (OleDbConnection cn = new OleDbConnection(ConnectionString))
            {
                cn.Open();
                using (OleDbCommand cmd = new OleDbCommand("select * FROM T1", cn))
                {

                    using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
                    {
                        DataSet ds = new DataSet();
                        da.Fill(ds);
                        //ReportDataSource rds = new ReportDataSource("DataSet1", ds.Tables[0]);
                        //reportViewer1.LocalReport.DataSources.Clear();
                        //reportViewer1.LocalReport.DataSources.Add(rds);
                        //reportViewer1.LocalReport.Refresh();
                        reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;
                        reportViewer1.LocalReport.DataSources.Clear();
                        reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ds", ds.Tables[0]));
                        reportViewer1.LocalReport.Refresh();
                        reportViewer1.RefreshReport();


                    }
                }
            }
        }
    }
}

تم تعديل هذه المشاركة بواسطة SOLO.NET في 8 مارس 2014 في 04:20

1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

RDL-CPICTURE.rar

 

المثال

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#4

شكراً (f)

  بالفعل تمت بنجاح

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…