ورود

View Full Version : سوال: نحوه ذخیره و بازیابی فایل pdf در دیتابیس Sql با linq



mohsenashkboos
دوشنبه 30 اردیبهشت 1392, 18:31 عصر
با سلام.دوستان من میخوام درون دیتابیسم با استفاده از linq در C# فایل pdf را ذخیره و بازیابی کنم.لطفا راهنمایی کنید و اگر کدی دارید بزاردید ممنون میشم.

mohsenashkboos
سه شنبه 31 اردیبهشت 1392, 15:19 عصر
یعنی کسی نیست که تا حالا اینکارو کرده باشه؟؟؟

Mahmoud.Afrad
سه شنبه 31 اردیبهشت 1392, 16:11 عصر
یک ستون(image) از نوع varbinary برای خود فایل و یک ستون(extension) از نوع varchar برای ذخیره پسوند فایل نیاز دارید.

using (OpenFileDialog ofd = new OpenFileDialog())
{
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
FileInfo finfo = new FileInfo(ofd.FileName);

byte[] bytes = File.ReadAllBytes(ofd.FileName);
string ext = finfo.Extension.TrimStart('.');

Tbl t = new Tbl()
{
image = bytes,
extension = ext
};

db.Tbls.InsertOnSubmit(t);
db.SubmitChanges();
}
}

aminpourazadeh
چهارشنبه 09 مرداد 1392, 07:42 صبح
یک ستون(image) از نوع varbinary برای خود فایل و یک ستون(extension) از نوع varchar برای ذخیره پسوند فایل نیاز دارید.

using (OpenFileDialog ofd = new OpenFileDialog())
{
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
FileInfo finfo = new FileInfo(ofd.FileName);

byte[] bytes = File.ReadAllBytes(ofd.FileName);
string ext = finfo.Extension.TrimStart('.');

Tbl t = new Tbl()
{
image = bytes,
extension = ext
};

db.Tbls.InsertOnSubmit(t);
db.SubmitChanges();
}
}


برای بازیابیش تو فرم باید چه کدی نوشت؟که داخل خود فرم فایل pdf را بازکنه؟

amir3321
جمعه 11 مرداد 1392, 17:21 عصر
این کد در ef 6 نوشته شده و برای ذخیره هر فایلی و اجرای آن قابل استفاده است البته filestreame روی sqlserver فعال بوده ولی به هرحال فقط به این کد نیاز به guid برای هر رکورد رو اضافه می کند



this.Cursor = Cursors .WaitCursor;
byte[] bufferjpg = null;
bufferjpg = File.ReadAllBytes("C:\\Users\\amir\\Downloads\\gg. bbd");

SIEPEntities p = new SIEPEntities();
var tt = p.Database.BeginTransaction();

filepartjpg d = new filepartjpg();
d.filepartid = 102;
d.fileid = Guid.NewGuid();
d.jpgfile = bufferjpg;
p.filepartjpgs.Add(d);

p.SaveChanges();
tt.Commit();

var buffer =( from s in p.filepartjpgs where s.filepartid == 102 select new { s.jpgfile }).FirstOrDefault ();
bufferjpg = buffer.jpgfile;

string tempDir = Path.GetTempPath();
FileStream fs = new FileStream(tempDir + "\\" + "gg.bbd", FileMode.Create);
fs.Write(bufferjpg, 0, bufferjpg.Length);
fs.Close();

// File.Copy(filepath1, tempDir + "\\" + filename1);
System.Diagnostics.Process.Start(tempDir + "\\" + "gg.bbd");
this.Cursor = Cursors.Default;

hojjjat
جمعه 22 شهریور 1392, 14:50 عصر
این کد در ef 6 نوشته شده و برای ذخیره هر فایلی و اجرای آن قابل استفاده است البته filestreame روی sqlserver فعال بوده ولی به هرحال فقط به این کد نیاز به guid برای هر رکورد رو اضافه می کند



this.Cursor = Cursors .WaitCursor;
byte[] bufferjpg = null;
bufferjpg = File.ReadAllBytes("C:\\Users\\amir\\Downloads\\gg. bbd");

SIEPEntities p = new SIEPEntities();
var tt = p.Database.BeginTransaction();

filepartjpg d = new filepartjpg();
d.filepartid = 102;
d.fileid = Guid.NewGuid();
d.jpgfile = bufferjpg;
p.filepartjpgs.Add(d);

p.SaveChanges();
tt.Commit();

var buffer =( from s in p.filepartjpgs where s.filepartid == 102 select new { s.jpgfile }).FirstOrDefault ();
bufferjpg = buffer.jpgfile;

string tempDir = Path.GetTempPath();
FileStream fs = new FileStream(tempDir + "\\" + "gg.bbd", FileMode.Create);
fs.Write(bufferjpg, 0, bufferjpg.Length);
fs.Close();

// File.Copy(filepath1, tempDir + "\\" + filename1);
System.Diagnostics.Process.Start(tempDir + "\\" + "gg.bbd");
this.Cursor = Cursors.Default;




اگه میشه با همون linq کد رو بنویسین ..خیلی نیاز دارم واقعا ضروری هست مرسی