PDA

View Full Version : سوال: اضافه کردن هر نوع فایل به بانک اطلاعات با linq



zarrinnegar
یک شنبه 20 آذر 1390, 01:04 صبح
میخوام هر نوع فایلی رو که با openfiledialog انتخاب کرد بریزم توی دیتابیس و بعد بتونم با savefiledialog از دیتابیس بکشم بیرون و تو مسیر انتخاب شده ذخیره کنم

اگه راهی هست بگین
البته من خودم با filestream یه چیزایی نوشتم ولی وقتی برش میگردونم محتویات نداره میخوام کدی بزارید که با کد خودم مقایسه کنم

کد خودم رو نگذاشتم میخوام هر کی از هر راهی که بلده جواب بده

شفیعی
یک شنبه 20 آذر 1390, 07:55 صبح
خواندن فایل
FileStream fs = File.OpenRead(strFileName);
byte[] fileBinData = new byte[fs.Length];
fs.Read(fileBinData, 0, fileBinData.Length);

نوشتن فایل (SAVE AS )
var im = (from T in db.FManagers where T.FCOD == int.Parse(cod) select T).Single();
saveFileDialog1.FileName = im.Nfile;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
FileStream fs = File.OpenWrite(saveFileDialog1.FileName);
byte[] fileBinData = new byte[fs.Length];
fileBinData = im.Ffile.ToArray();
fs.Write(fileBinData, 0, fileBinData.Length);
fs.Close();
}
امیدوارم به درد بخوره

zarrinnegar
یک شنبه 20 آذر 1390, 09:27 صبح
این کد ذخیره من است

var lq = new MylinqDataContext();
//------------------------------------------------------------
string fname;
fname = Path.GetFileName(Openfiledialog1.filename.ToString ());
FileStream fileStream = new FileStream(obj.ToString(), FileMode.OpenOrCreate, FileAccess.Read);
long len;
len = fileStream.Length;
Byte[] fileAsByte = new Byte[len];
fileStream.Read(fileAsByte, 0, fileAsByte.Length);
MemoryStream memoryStream = new MemoryStream(fileAsByte);
byte[] buffer=memoryStream.ToArray();
lq.Sp_Attach_Message_Insert(Convert.ToInt32(lnk_me ssage.M_ID),fname, buffer);




و این هم کد بازیابی فایل


var lq = new MylinqDataContext();
var lnk_Attach = lq.Tbl_Attach_Messages.Where(c => c.Message_Code == 100).First();
byte[] arr = (byte[])(lnk_Attach.File_Attach).ToArray();
FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.CreateNew);
fs.Write(arr, 0, Convert.ToInt32(arr.Length));
fs.Close();


وقتی فایل ساخته میشه محتوی نداره نمیدونم چرا؟ و اشکال کجاست؟
file_attach هم نام فیلد توی جدول هست که نوعش باینریه