السلام عليكم ,,
كيف اعرض صورة من قاعدة البيانات لتقرير الفيجول استيديو (الاساسي وليس كريستال ريبورت ) ؟؟؟
السلام عليكم ,,
كيف اعرض صورة من قاعدة البيانات لتقرير الفيجول استيديو (الاساسي وليس كريستال ريبورت ) ؟؟؟
السلام عليكم
هذا مثال باستخدام قاعدة بيانات اكسس ...مع النصيحة لا تخزن الصور فى قاعدة البيانات وفقط خزن مسار الملف بينما احفظ الصور بداخل مجلد...حفاظا على حجم قاعدة البيانات
المثال عبارة عن فورم وبه 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
VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

VB.NET and C# Comparison
http://www.harding.edu/fmccown/vbnet_csharp_comparison.html
=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

شكراً (f)
بالفعل تمت بنجاحالمتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…