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

نام تاپیک: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

  1. #1

    Question ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    سلام
    من در پروژه مدیریت آموزشگاه، برای موجودیت Student ، هنگام ثبت نام مدارکی از قبیل عکس، تصویر کارت ملی و... را میخوام اسکن و ذخیره کنم.
    سوال اولم اینه که:
    بهتره تصویر مدارک نگهداری بشن یا آدرسشون؟
    سپاس

  2. #2
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,019

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    دست شماست.
    فکر نکنم ذخیره اینها در دیتابیس باعث بالا رفتم حجمشون بشه.
    اینهایی که گفتید باید اسکن شود و در قالب یه فایل باینری ذخیره کنید یعنی فیلد شما باینری مکس باید باشه.
    در قالب یه اپلود میتونید read byte کنید.

  3. #3
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    نقل قول نوشته شده توسط cse.Abdali مشاهده تاپیک
    سلام
    من در پروژه مدیریت آموزشگاه، برای موجودیت Student ، هنگام ثبت نام مدارکی از قبیل عکس، تصویر کارت ملی و... را میخوام اسکن و ذخیره کنم.
    سوال اولم اینه که:
    بهتره تصویر مدارک نگهداری بشن یا آدرسشون؟
    سپاس
    آدرسشون ذخیره کنی بهتره است
    در کنار پروژه یک فولدر میسازی وتمام کارت ملیها را درون آن قرار میدهی و آدرسشونو در دیتابیس ذخیره میکنی

  4. #4

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    اگه نظر من رو میخواهید عکس رو در داخل دیتابیس ذخیره کنید و باقی اطلاعات رو وارد کنید.داخل دیتابیس یه فیلد تعریف کنید برای عکس نوش رو بزارید varbinary(MAX) و با این دستور اول عکس رو کوچیک کنید که حجم عکس زیاد نباشه.و عکس رو ذخیره کنید بهتر هستش چون ممکنه عکس جابه جا بیش و دیگه برای مشاهده وجود نداشته باشه.این کد برای تغییر اندازه کردن عکس .
           // کاراهای مخصوص تغییر اندازه عکس
    #region Private Members
    private Image picimage= Properties.Resources.EmployeesNoPic;
    #endregion

    #region Propersties
    private int _imgwidth
    {
    get
    {
    return 120;
    }
    }

    private int _imgHieght
    {
    get
    {
    return 140;
    }
    }
    #endregion

    #region Public Function
    public Bitmap ResizeBitMap(Bitmap b, int nWidth, int nHeight)
    {
    Bitmap result = new Bitmap(nWidth, nHeight);
    using (Graphics g = Graphics.FromImage((Image)result))
    g.DrawImage(b, 0, 0, nWidth, nHeight);
    return result;
    }
    #endregion
    این کد برای باز کردن عکس
            private void btnPic_Click(object sender, EventArgs e)
    {
    try
    {

    OpenFileDialog fd = new OpenFileDialog();
    fd.Filter = "(*.JPG) تصاویر|*.jpg|" +
    "(*.GIF) تصاویر|*.Gif" +
    "(*.PNG) تصاویر|*.PNG" +
    "" +"(*.*) تمام تصاویر|*.*";
    fd.Title = "انتخاب تصویر";
    fd.ShowDialog();
    float imgWidth = System.Drawing.Image.FromFile(fd.FileName).Physica lDimension.Width;
    float imgHeight = System.Drawing.Image.FromFile(fd.FileName).Physica lDimension.Height;
    picimage = System.Drawing.Image.FromFile(fd.FileName);
    if (imgWidth > _imgwidth || imgHeight > _imgwidth)
    {
    string strMessage = "تصویر انتخابی شما نباید بزرگتر از {1}*{0} پیکسل باشد" + "\n" +
    "آیا تمایل به تغییر اندازه عکس دارید ؟";
    if (PersianMessageBox.Show(string.Format(strMessage, _imgwidth, _imgHieght), "پیام سیستم", PersianMessageBox.Buttons.YesNo, PersianMessageBox.Icon.Warning) == DialogResult.Yes)
    {
    picimage = ResizeBitMap((Bitmap)picimage, _imgwidth, _imgHieght);
    Pictcurebox1.Image = picimage;
    }
    else
    {
    picimage = Properties.Resources.EmployeesNoPic;
    Pictcurebox1.Image = picimage;
    }
    }
    else
    {
    Pictcurebox1.Image = picimage;
    }
    }
    catch { }
    }
    این کد هم برای ذخیره اطلاعات
     private void BtnAdd_Click(object sender, EventArgs e)
    {
    if (TxtAddNumber.Text.Trim() == "")
    {
    errorProvider1.SetError(TxtAddNumber, "لطفاً شماره ثبت شرکت را وارد فرمائید");
    TxtAddNumber.Focus();
    return;
    }
    if (cmbNoyeMosse.Text.Trim() == "")
    {
    errorProvider1.SetError(cmbNoyeMosse, "لطفاَ نوع موسسه را وارد فرمایید");
    cmbNoyeMosse.Focus();
    return;
    }
    if (TxtNameCompaney.Text.Trim() == "")
    {
    errorProvider1.SetError(TxtNameCompaney, "لطفاً نام شرکت را وارد فرمائید");
    TxtNameCompaney.Focus();
    return;
    }
    if (TxtNameDefter.Text.Trim() == "")
    {
    errorProvider1.SetError(TxtNameDefter, "لطفاً نام دفتر را وارد فرمائید");
    TxtNameDefter.Focus();
    return;
    }
    if(CmbSex.Text.Trim()=="")
    {
    errorProvider1.SetError(CmbSex, "لطفاً جنسیت را تعریف فرمائید");
    CmbSex.Focus();
    return;
    }
    if (TxtNameAdmin.Text.Trim() == "")
    {
    errorProvider1.SetError(TxtNameAdmin, "لطفاً نام مدیر را وارد فرمائید");
    TxtNameAdmin.Focus();
    return;
    }
    if (TxtTel.Text.Trim() == "")
    {
    errorProvider1.SetError(TxtTel, "لطفاً شماره تماس را وارد فرمائید");
    TxtTel.Focus();
    return;
    }
    if (TxtCreateDate.Text.Trim() == "")
    {
    errorProvider1.SetError(TxtCreateDate, "لطفاً تاریخ احداث ایجاد شرکت را وارد فرمائید");
    TxtCreateDate.Focus();
    return;
    }
    if (TxtAddress.Text.Trim() == "")
    {
    errorProvider1.SetError(TxtAddress, "لطفاً آدرس شرکت را وارد فرمائید");
    TxtAddress.Focus();
    return;
    }
    if (TxtDistrbuite.Text.Trim() == "")
    {
    errorProvider1.SetError(TxtDistrbuite, "لطفاً شرح و وظایف شرکت را وارد فرمائید");
    TxtDistrbuite.Focus();
    return;
    }
    //if (Pictcurebox1.Image == null)
    //{
    // PersianMessageBox.Show("شما هیچ تصویری را برای این گذاینه انتخاب نکردید", "خطا در یافت تصویر", PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Error);
    //}
    else
    {
    try
    {
    MemoryStream ms = new MemoryStream();
    try
    {
    Pictcurebox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
    }
    catch { }
    byte[] arrPic = ms.GetBuffer();
    ms.Close();
    //SqlConnection con = new SqlConnection();
    //con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DbPoshakSayeBan.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
    db.Connect();
    db.cmd = new SqlCommand();
    db.cmd.Connection = db.con;
    db.cmd.CommandText = "insert into TBL_Compane (C_AddNumber,C_NameDefterMaly,C_NoyeMosse,C_NameMo sse,C_Sex,C_Admin,C_Distrbuite,C_Tel,C_Fax,C_DateC reate,C_Addreass,C_Logo) Values " +
    "(@C_AddNumber,@C_NameDefterMaly,@C_NoyeMosse,@C_N ameMosse,@C_Sex,@C_Admin,@C_Distrbuite,@C_Tel,@C_F ax,@C_DateCreate,@C_Addreass,@C_Logo)";
    //cmd.Parameters.AddWithValue("@C_ID", Int32.Parse(txtid.Text));
    db.cmd.Parameters.AddWithValue("@C_AddNumber",TxtA ddNumber.Text);
    db.cmd.Parameters.AddWithValue("@C_NameDefterMaly" , TxtNameDefter.Text);
    db.cmd.Parameters.AddWithValue("@C_NoyeMosse", cmbNoyeMosse.SelectedItem.ToString());
    db.cmd.Parameters.AddWithValue("@C_NameMosse", TxtNameCompaney.Text);
    db.cmd.Parameters.AddWithValue("@C_Sex", CmbSex.SelectedItem.ToString());
    db.cmd.Parameters.AddWithValue("@C_Admin", TxtNameAdmin.Text);
    db.cmd.Parameters.AddWithValue("@C_Distrbuite", TxtDistrbuite.Text);
    db.cmd.Parameters.AddWithValue("@C_Tel", TxtTel.Text);
    db.cmd.Parameters.AddWithValue("@C_Fax", TxtFax.Text);
    db.cmd.Parameters.AddWithValue("@C_DateCreate", TxtCreateDate.Text);
    db.cmd.Parameters.AddWithValue("@C_Addreass", TxtAddress.Text);
    db.cmd.Parameters.AddWithValue("@C_Logo", SqlDbType.Image).Value = arrPic;
    db.cmd.ExecuteNonQuery();
    db.Disconnect();
    FrmCompane_Load(null, null);
    }
    catch(Exception ex)
    {
    if (!ShowFrienMessge)
    PersianMessageBox.Show(ex.Message);
    else
    PersianMessageBox.Show("اشکال در ذخیره اطلاعات / خطا 103", "خطا", PersianMessageBox.Buttons.OK, PersianMessageBox.Icon.Error);
    //if (db.LastError != "")
    // PersianMessageBox.Show("خطا 103" + db.LastError);
    }
    }

    به وسیله این می ونید اطلاعات خود را ذخیره کنید و تصویر هم با حجم کم ذخیره مکنید که سیستم سنگین نشه اگگه حجک عکس بیشتر بود کم میشه. و به صورت باینری ذخیره میشه.

  5. #5
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,019

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    دقت داشته باشین که حجم دیتابیس تا گیگ ها قابل افزایش پس نگرانی نیست.

  6. #6

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    نقل قول نوشته شده توسط fakhravari مشاهده تاپیک
    دقت داشته باشین که حجم دیتابیس تا گیگ ها قابل افزایش پس نگرانی نیست.
    بله دیتابیس میتونه اطلاعات رو حجم بسیاز یاد در خود ذخیره کنه ولی وقتی حجم دادها زاد شود اون موقع در بالا امد سیستم ، سیستم سنگین میشود و دیر بالا میاد مثل این میمونه وقتی 70000 رکود داریم و میخوایم فراخوانی کنیم نزدیک 1 یا 2 دقیقه میکشه حالا به این توجه داشته باشیم عکس رو حجم زیاد ذخیره کنیم و میخواد بالا بیاد 70000 تا رکورد به جای 1 یا 2 دقیقه 20 یا 30 دقیقه بکشه این هم هستش.برادر

  7. #7

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    نه ادرسو ذخیره کن و نه خود عکسو
    با ی الگوریتم خاصی تصاویر رو تغییر نام بده و تو پوشه مورد نظرت ذخیره کن
    مثلا student با id = 10 تصاویری داره با نام هایی که با 10 آغاز میشه و بقیشو دیگه مهم نیس که چی میذاری
    و موقعی که میخوای بازیابی کنی تصاویرو از همین الگوریتم استفاده میکنی و تصاویر مربوط به این دانش آموز رو برمیگردونی

    موفق

  8. #8
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    منم منظورم همین بود عکس رادر پوشه قرار بده و شناسه برای عکس در نظر بگیرد
    (که میتون آدی باشه یا آدرس و یاو.....)

  9. #9

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    در نسخه 2012 قابلیت File Table به SQL Server اضافه شده که به همین منظور (ذخیره داده ها حجیم) جهت جدا کردن اون از داده های کم حجم تر استفاده میشه.
    قبل از اینکه بتونید استفاده کنید باید قابلیت FILESTREAM رو فعال کنید:http://msdn.microsoft.com/en-us/library/cc645923.aspx
    و بعد یکی از روی لینک قدم به قدم بسازید:http://msdn.microsoft.com/en-us/library/gg509088.aspx
    و بعد تصاویرتون رو لود کنید: http://msdn.microsoft.com/en-us/library/gg492083.aspx

    -- Add a path locator column to the PhotoMetadata table.
    ALTER TABLE PhotoMetadata ADD pathlocator hierarchyid;

    -- Get the root path of the Photo directory on the File Server.
    DECLARE @UNCPathRoot varchar(100) = '\\RemoteShare\Photographs';

    -- Get the root path of the FileTable.
    DECLARE @FileTableRoot varchar(1000);
    SELECT @FileTableRoot = FileTableRootPath('dbo.PhotoTable');

    -- Update the PhotoMetadata table.

    -- Replace the File Server UNC path with the FileTable path.
    UPDATE PhotoMetadata
    SET UNCPath = REPLACE(UNCPath, @UNCPathRoot, @FileTableRoot);

    -- Update the pathlocator column to contain the pathlocator IDs from the FileTable.
    UPDATE PhotoMetadata
    SET pathlocator = GetPathLocator(UNCPath);

  10. #10

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    اگه میشه در مورد ذخیره عکس در فایل و ذخیره آدرس عکس تو دیتابیس اطلاعاتی بدین

  11. #11

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    با تشکر از راهنمایی همه دوستان
    آقای fakhravari، منم با نظر davidrobert موافقم. احساس می کنم ذخیره عکس ها در دیتابیس، هر چند حجم عکس ها را پایین بیاریم ممکنه باعث کند شدن سیستم بشه
    ولی از طرفی هم نگران امنیت داده هام هستم و اینکه هرکسی که وارد سیستم بشه می تونه به عکس ها و سایر مدارک داوطلبا دسترسی داشته باشه. (البته نمی دونم این کار مشکلات احتمالی دیگه ای هم داره یا نه)

  12. #12

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    آقای tooraj_azizi_1035
    بنده با نسخه 2008R2 دیتابیسم را ایجاد کردم
    انشاءالله بعد از تغییر ورژن حتما در پروژه هام از این قابلیتی که فرمودید استفاده می کنم

  13. #13
    کاربر جدید آواتار diamond-program
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    اینترنت
    پست
    26

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    ما که کسی نیستیم بین این اساتید که نقل قول کردن ولی به نظر من اگه عکس را ذخیره کنی بهتر باشه

  14. #14

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    نقل قول نوشته شده توسط cse.Abdali مشاهده تاپیک
    آقای tooraj_azizi_1035
    بنده با نسخه 2008R2 دیتابیسم را ایجاد کردم
    انشاءالله بعد از تغییر ورژن حتما در پروژه هام از این قابلیتی که فرمودید استفاده می کنم
    وقت بگم اگه بخواهی دیتابیس رو از 2008 به 2012 ارتقاع بدی دیگه قابل برگشت به 2008 نیست و دیگه با سکول سرور 2008 می توانه ای برگردی جز اینکه قبل از آبدیت کردن دیتابیست از 2008 به 2012 یه کپی ازش بگیری منم میخوام با دات نت 2012 و اسکلو سرور 2012 کار کنم ولی مشکلی دارم چون همه فایل ها کمکی که دارم با اسکول سرور 2008 باز میشه و دات نت 2010 بدون هیچ مشکلی ولی اگه با دانت و اسکل سرور 2012 باز کنم دیگه اجراری برای پروژم ندارم تا ببنیم کدام پروژه کار میکنه و هر کدامش چی کاری رو انجام میده من همچین مشکلی رو با 2012 بر خورد کردم ولی قبلش از فایل هم کپی گرفته بودم 2 تا داشتماز فایل ها تا تونستم به اطلاعات دسرسی داشته باشم و ببینم.

  15. #15

    نقل قول: ذخیره مدارک دریافتی از داوطلب، در دیتابیس

    نقل قول نوشته شده توسط davidrobert مشاهده تاپیک
    وقت بگم اگه بخواهی دیتابیس رو از 2008 به 2012 ارتقاع بدی دیگه قابل برگشت به 2008 نیست و دیگه با سکول سرور 2008 می توانه ای برگردی جز اینکه قبل از آبدیت کردن دیتابیست از 2008 به 2012 یه کپی ازش بگیری منم میخوام با دات نت 2012 و اسکلو سرور 2012 کار کنم ولی مشکلی دارم چون همه فایل ها کمکی که دارم با اسکول سرور 2008 باز میشه و دات نت 2010 بدون هیچ مشکلی ولی اگه با دانت و اسکل سرور 2012 باز کنم دیگه اجراری برای پروژم ندارم تا ببنیم کدام پروژه کار میکنه و هر کدامش چی کاری رو انجام میده من همچین مشکلی رو با 2012 بر خورد کردم ولی قبلش از فایل هم کپی گرفته بودم 2 تا داشتماز فایل ها تا تونستم به اطلاعات دسرسی داشته باشم و ببینم.
    نه منظور من پروژه های بعدیم بود. ممنون از تذکرتون

تاپیک های مشابه

  1. ذخیره و بازیابی ساختارهای درختی دز دیتابیس
    نوشته شده توسط vb_nima در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: چهارشنبه 15 فروردین 1386, 11:43 صبح
  2. پاسخ: 1
    آخرین پست: شنبه 12 اسفند 1385, 13:23 عصر
  3. ذخیره کردن و خواندن آرایه در دیتابیس
    نوشته شده توسط finalcut در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 13 شهریور 1385, 13:37 عصر
  4. ذخیره RichEdit با فرمت مختلف در دیتابیس
    نوشته شده توسط shayan_delphi در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: یک شنبه 29 مرداد 1385, 09:19 صبح
  5. پاسخ: 8
    آخرین پست: پنج شنبه 23 تیر 1384, 12:08 عصر

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

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