نمایش نتایج 1 تا 3 از 3

نام تاپیک: اضافه کردن هر نوع فایل به بانک اطلاعات با linq

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    همین نزدیکیها
    پست
    683

    اضافه کردن هر نوع فایل به بانک اطلاعات با linq

    میخوام هر نوع فایلی رو که با openfiledialog انتخاب کرد بریزم توی دیتابیس و بعد بتونم با savefiledialog از دیتابیس بکشم بیرون و تو مسیر انتخاب شده ذخیره کنم

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

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

  2. #2

    نقل قول: اضافه کردن هر نوع فایل به بانک اطلاعات با 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();
    }
    امیدوارم به درد بخوره

  3. #3
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    همین نزدیکیها
    پست
    683

    نقل قول: اضافه کردن هر نوع فایل به بانک اطلاعات با 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 هم نام فیلد توی جدول هست که نوعش باینریه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •