PDA

View Full Version : مشکل در ذخیره و نمایش فایل pdf در دیتابیس



mortezasar
شنبه 20 اردیبهشت 1393, 10:42 صبح
سلام
من میخوام چندتا فایل پی دی اف رو توی دیتا بیسم ذخیره کنم این کد رو نوشتم اما جواب نمیده صفحات فایل پی دی اف رو برام میاره اما صفحات سفید هستند (خالی ) بعضی وقتا هم بعضی فایل های پی دی اف رو درست نشون میده
ضمنا فایل های پی دی اف هم به زبان فارسی هستند
فیلد دیتا بیس هم varbainary هست
اینم کد هام ممنون میشم راهنمایی کنید


private void gvx_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
SqlConnection conn112 = new SqlConnection("Data Source=(local);Initial Catalog=COPY_CENTER;Integrated Security=True");
conn112.Open();
SqlCommand cmd112 = new SqlCommand();
cmd112.Connection = conn112;
cmd112.CommandText = "select pfile from TB_FILE where id = '"+long.Parse(gvx.CurrentRow.Cells[0].Value.ToString())+"'";
b= (byte[])cmd112.ExecuteScalar();
MemoryStream memo = new MemoryStream(b);
this.radPdfViewer1.LoadDocument(memo);
this.radPdfViewer1.ShowThubnails();
}

private void button1_Click(object sender, EventArgs e)
{
int er = 0;
if (txtpath.Text == "")
{
MessageBox.Show("لطفا فایل را انتخاب کنید", "اخطار");
er = (er + 1);
return;
}
if (er == 0)
{
SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=COPY_CENTER;Integrated Security=True");
conn.Open();
SqlCommand sc = new SqlCommand("Insert TB_FILE (pfile,jj_id,ccat_id) values (@cat_id,@ostad,@name)", conn);
sc.Parameters.AddWithValue("@cat_id", Data);
sc.Parameters.AddWithValue("@ostad", long.Parse(textBox4.Text));
sc.Parameters.AddWithValue("@name", long.Parse(textBox4.Text));
sc.ExecuteNonQuery();
conn.Close();
MessageBox.Show("فایل مورد نظر ثبت شد ");
}
}
private void button2_Click(object sender, EventArgs e)
{
try
{
ofd.Filter = "PDF File(*.pdf)|*.pdf|Word Document File(*.doc)|*.doc|All Files(*.*)|*.*";
ofd.FilterIndex = 1;
ofd.FileName = "انتخاب فایل";
ofd.Title = "مسیر فایل";
if (ofd.ShowDialog() == DialogResult.OK)
{
path = ofd.FileName;
txtpath.Text = path;
FileInfo finfo = new FileInfo(path);
long numbyte = finfo.Length;
FileStream fstream = new FileStream(path, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fstream);
Data = br.ReadBytes((int)numbyte);

}
}
catch (Exception error)
{
MessageBox.Show("Can not to Show openFileDialog.", "Error openFileDialog", MessageBoxButtons.OK,
MessageBoxIcon.Error);
MessageBox.Show(error.Message);
return;
}
}