PDA

View Full Version : قرار دادن عکس ها به ترتیب در گزارش



kianezhad
سه شنبه 27 فروردین 1392, 10:18 صبح
با سلام خدمت همه دوستان و اساتید گرامی

من یه برنامه نوشتم که یه سری مشخصات رو همراه با تصاویرشون در بانک ذخیره میکنه البته تصاویر رو از فایل میخونه و فقط آدرس عکس درون دیتابیس هست و تصویر رو تو دیتاست بصورت بایرنی ذخیره میکنه و بعد لود میکنه. مشکل اینجاست که وقتی توی گزارش عکس ها رو میخوام لود کنم تمام رکورد ها لود میشه جز تصویر که جاش خالیه.
از دوستان خواهشمندم که راهنمایی کنین
اینم بخشی از کد قرار دادن در دیتاست

public partial class BarcodeForm : Form
{
OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\MasterDB.mdb");
int count = 0;
byte[] barcode;
int count2 = 0;
int num = 0;
string[] studNo;
MasterDB mdb = new MasterDB();

public BarcodeForm()
{
InitializeComponent();
}
MasterDB mds = new MasterDB();
private void button1_Click(object sender, EventArgs e)
{
try
{
studNo = new string[num];
OleDbCommand cm = new OleDbCommand("select Sno from DetailsTB where Srank='"+cmbRank.Text+"'", cn);

OleDbDataReader dr;
FileStream fs;
BinaryReader br;

cn.Open();
dr = cm.ExecuteReader();
while (dr.Read())
{
string temp = dr.GetValue(0).ToString();
studNo[count] = temp.ToString();
count++;
}
cn.Close();

while (count2 < studNo.Length)
{
fs = new FileStream(Application.StartupPath + "\\Barcodes\\" + studNo[count2] + ".jpg", FileMode.Open);
br = new BinaryReader(fs);
barcode = br.ReadBytes(Convert.ToInt32(fs.Length));

//OleDbCommand cm2 = new OleDbCommand("update DetailsTB set Sbarcode='"+barcode+"' where Sno='"+studNo[count2]+"'", cn);
//cn.Open();
//cm2.ExecuteNonQuery();
//cn.Close();
//OleDbDataAdapter da = new OleDbDataAdapter(cm);
mds.BarPic.Rows.Add(studNo[count2], barcode);
count2++;
lblCounter.Text = count2.ToString();
dgView.AutoGenerateColumns = true;
dgView.DataSource = mds;
dgView.DataMember = "BarPic";
}
}
catch (Exception)
{
this.Refresh();
}
}

private void BarcodeForm_Load(object sender, EventArgs e)
{
OleDbDataReader dr;
OleDbCommand cm = new OleDbCommand("select Srank from DetailsTB", cn);
cn.Open();
dr = cm.ExecuteReader();
while (dr.Read())
{
num++;
if (Compaire(dr.GetValue(0).ToString()) == true)
{
cmbRank.Items.Add(dr.GetValue(0).ToString());

}
else
{
continue;
}
}
cn.Close();
}

public bool Compaire(string item)
{
foreach (string t in cmbRank.Items)
{
if (t == item)
{
return false;
}
}
return true;
}
}

اینم کد لود کردن

public partial class PrintAll : Form
{
OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\MasterDB.mdb");
MasterDB mds = new MasterDB();
// StidentTB strp = new StidentTB();
SRP sr = new SRP();
public PrintAll(string rank)
{
InitializeComponent();
FileStream fd;
fd= new FileStream(Application.StartupPath + "\\Card\\Card.png",FileMode.Open);
BinaryReader br;
br= new BinaryReader(fd);
byte[] card = br.ReadBytes(Convert.ToInt32(fd.Length));

fd = new FileStream(Application.StartupPath + "\\Card\\Card2.png", FileMode.Open);
br = new BinaryReader(fd);
byte[] Card2 = br.ReadBytes(Convert.ToInt32(fd.Length));


OleDbCommand cm = new OleDbCommand("select * from DetailsTB where Srank='" + rank + "'",cn);
OleDbDataAdapter da = new OleDbDataAdapter(cm);
da.Fill(mds,"DetailsTB");

mds.CardTB.Rows.Add(card);
mds.CardTB2.Rows.Add(Card2);

sr.SetDataSource(mds);
crystalReportViewer1.ReportSource = sr;
crystalReportViewer1.Show();

}

اینم عکس دیتاستی که ساختم

102898

kianezhad
سه شنبه 27 فروردین 1392, 15:44 عصر
کسی نیست جواب مارو بده؟؟؟ دوستان اصلا کد های بالا رو بیخیال یه نمونه سورس برام بذارید که عکس ها رو از ورودی دریافت کنه و اونا رو تو بانک اکسس ذخیره کنه و تو گزارش کریستال ریپورت تک تک عکس ها رو برا چاپ آماده کنه