اضافه کردن هر نوع فایل به بانک اطلاعات با linq
میخوام هر نوع فایلی رو که با openfiledialog انتخاب کرد بریزم توی دیتابیس و بعد بتونم با savefiledialog از دیتابیس بکشم بیرون و تو مسیر انتخاب شده ذخیره کنم
اگه راهی هست بگین
البته من خودم با filestream یه چیزایی نوشتم ولی وقتی برش میگردونم محتویات نداره میخوام کدی بزارید که با کد خودم مقایسه کنم
کد خودم رو نگذاشتم میخوام هر کی از هر راهی که بلده جواب بده
نقل قول: اضافه کردن هر نوع فایل به بانک اطلاعات با linq
خواندن فایل
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();
}
امیدوارم به درد بخوره
نقل قول: اضافه کردن هر نوع فایل به بانک اطلاعات با linq
این کد ذخیره من است
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 هم نام فیلد توی جدول هست که نوعش باینریه