hasan_esfahan
یک شنبه 04 اسفند 1387, 13:29 عصر
ابتدا یک data set ایجاد می کنید داخل فرم data set راست کلیک add و datatable را ایجاد می کنی(dt1) سپس روی dt1 راست کلیک کنید و add=> column کلیک کنید (img1) و date type ان را از نوع System.Byte[] قرار دهید سپس به کریستال ریپورت رفته و دیتاست را فراخوانی و فیلد img1 را در قسمت details قرار دهید بعد به محیط کد نویسی بازگشته و کد زیر را درج کنید
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; data source=C:\Documents and Settings\hasan\My Documents\mydata.mdb");
OleDbDataReader dr;
OleDbCommand com = new OleDbCommand("select Address from tb1", con);
con.Open();
dr = com.ExecuteReader();
DataSet1 ds1 = new DataSet1();
CrystalReport1 cr1 = new CrystalReport1();
while(dr.Read())
{
DataSet1.dt1Row img = ds1.dt1.Newdt1Row();
img["img1"] = convert(dr["Address"].ToString());
ds1.dt1.Rows.Add(img);
}
con.Close();
cr1.SetDataSource(ds1);
crystalReportViewer1.ReportSource = cr1;
}byte[] convert(string path1)
{
System.IO.FileStream filein = new System.IO.FileStream(path1, FileMode.Open, FileAccess.Read);
BinaryReader bineryimg = new BinaryReader(filein);
return (bineryimg.ReadBytes(Convert.ToInt32(bineryimg.Bas eStream.Length)));
}
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; data source=C:\Documents and Settings\hasan\My Documents\mydata.mdb");
OleDbDataReader dr;
OleDbCommand com = new OleDbCommand("select Address from tb1", con);
con.Open();
dr = com.ExecuteReader();
DataSet1 ds1 = new DataSet1();
CrystalReport1 cr1 = new CrystalReport1();
while(dr.Read())
{
DataSet1.dt1Row img = ds1.dt1.Newdt1Row();
img["img1"] = convert(dr["Address"].ToString());
ds1.dt1.Rows.Add(img);
}
con.Close();
cr1.SetDataSource(ds1);
crystalReportViewer1.ReportSource = cr1;
}byte[] convert(string path1)
{
System.IO.FileStream filein = new System.IO.FileStream(path1, FileMode.Open, FileAccess.Read);
BinaryReader bineryimg = new BinaryReader(filein);
return (bineryimg.ReadBytes(Convert.ToInt32(bineryimg.Bas eStream.Length)));
}