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

نام تاپیک: ذخیره تصویر در سه لایه

  1. #1

    ذخیره تصویر در سه لایه

    سلام و خسته نباشید بنده از کدنویسی سه لایه بابت ذخیره تصویر در دیتابیس استفاده میکنم و میخواستم تصویر رو درون بانک ذخیره کنم در تکنولوژی دو لایه جواب میگیرم ولی در کد نویسی سه لایه نیاز دارم. یه کلاس دارم به نام جدول مکانیکی
     public int M_ID;
    public string M_SH_Shobeh;
    public string M_Name_Mekanaki;
    public int M_Sex;
    public string M_Name_Moder;
    public string M_Tel;
    public string M_Mobile;
    public string M_Address;
    public byte[] M_Sign;
    public byte[] M_Logo;
    public DateTime M_Date;
    public TimeSpan M_Time;
    public string M_SMS_Address;
    Database db=new Database();
    public void ADD()
    {
    try
    {
    PersianCalendar pc = new PersianCalendar();
    string date = pc.GetYear(DateTime.Now).ToString("0000") + "/" + pc.GetMonth(DateTime.Now).ToString("00") +
    "/" + pc.GetDayOfMonth(DateTime.Now).ToString("00");
    string time = pc.GetHour(DateTime.Now).ToString("00") + ":" + pc.GetMinute(DateTime.Now).ToString("00") +
    ":" + pc.GetSecond(DateTime.Now);
    db.connect();
    string q =
    @"insert into Tbl_Mekanaki
    (M_ID, M_SH_Shobeh, M_Name_Mekanaki, M_Sex, M_Name_Moder, M_Tel, M_Mobile, M_Address, M_Sign, M_Logo,M_Date, M_Time,M_SMS_Address)
    values
    (N'"+M_ID+ "', N'" + M_SH_Shobeh + "', N'" + M_Name_Mekanaki + "', N'" + M_Sex + "', N'" + M_Name_Moder + "', N'" + M_Tel + "', N'" + M_Mobile + "', N'" + M_Address + "', '"+M_Sign+"', '"+M_Logo+"',(select dbo.ShamsiToMiladi('"+date+"')), '"+time+"', N'"+M_SMS_Address+"')";

    db.docommand(q);
    db.distconnect();
    }

    مقادیر میگیرم و به سمت دیتابیس ارسال میکنم تنها مشکلی که داره ذخیره تصویر رو انجام نمیده
    این هم دستورت فرم برای ارسال به کلاس مکانیکی میباشد
     MemoryStream ms = new MemoryStream();
    try
    {
    PicLogo.Image.Save(ms, ImageFormat.Png);
    }
    catch
    {
    }
    byte[] arrPic = ms.GetBuffer();
    ms.Close();


    MemoryStream MsSign = new MemoryStream();
    try
    {
    PicSign.Image.Save(MsSign, ImageFormat.Png);
    }
    catch
    {
    }
    byte[] Arrsign = MsSign.GetBuffer();
    MsSign.Close();
    Tbl_Mekanaki mekanaki = new Tbl_Mekanaki();
    mekanaki.M_SH_Shobeh = TxtShobdeh.Text.Trim();
    mekanaki.M_Name_Mekanaki = TxtNameMekanake.Text.Trim();
    mekanaki.M_Sex = Convert.ToInt32(CmbSex.SelectedValue.ToString());
    mekanaki.M_Name_Moder = TxtNameModer.Text.Trim();
    mekanaki.M_Tel = TxtTel.Text.Trim();
    mekanaki.M_Mobile = TxtMobile.Text.Trim();
    mekanaki.M_Address = TxtAddress.Text.Trim();
    mekanaki.M_SMS_Address = TxtSmsAddress.Text.Trim();
    mekanaki.M_Logo = arrPic;
    mekanaki.M_Sign = Arrsign;
    mekanaki.ADD();

    ممنون میشم بگید چیکارکنم تا بتوانم تصویر رو ذخیره کنم این هم متن خطا
    Implicit conversion from data type nvarchar to varbinary(max) is not allowed. Use the CONVERT function to run this query.
    ممنون بابت کمکتان

  2. #2
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: ذخیره تصویر در سه لایه

    خطای ذخیره یک رشته از نوع Nvarchar در یک فیلد از نوع varbinary(max) هست
    ممکنه اشتباهی در انتساب پارامترها داشته باشید


    mekanaki.ADD();

    یک برکپوینت بعد و قبل این کد بزارید
    منظورم قبل از اینکه دستور ثبت به دیتابیس ارسال بشه چک بکنید مقادیر فیلدها صحیح هستند یا خیر

  3. #3

    نقل قول: ذخیره تصویر در سه لایه

    ممنون نوع فیلد ها درست بود ذخیره شد و مشکل بر طرف شد ممنون
    آخرین ویرایش به وسیله davidrobert : دوشنبه 30 بهمن 1396 در 06:32 صبح

  4. #4

    نقل قول: ذخیره تصویر در سه لایه

    متاسفانه فکر میکردم داره تصویر پاس میده برای ذخیره اشتباه فقط کلیه byte[] رو انتقال داده برای ذخیره هم برای تصویر این مشکل رو دارم هم برای md5hash هم این مشکل دارم اطلاعات اشتباه ذخیره میکنه داخل مقادیر که تریس میکنم اطلاعات موجود هستش ولی تو نمایش موجود نیست.
    ممنون میشم هم بابت تصویر و هم md5hash راهی میدانید کمک کنید با تشکر باکد نویسی سه لایه
    نحوه ارسال پارمتر به سمت دیتابیس درست همه اطلاعات میگیره و ارسال میکنه و مقادیر میفرسته ولی موقع ارسال به سمت کوئری مقادیر مربوط به روز و همین طور تصویر خالی رها میشه.
    "insert into Tbl_Mekanaki (M_SH_Shobeh, M_Name_Mekanaki, M_Sex, M_Name_Moder, M_Tel, M_Mobile, M_Address,M_Date, M_Time, \r\n                         M_SMS_Address,M_Sign,M_Logo) values \r\n                        (N'dfghjj', N'ggdg', N'1', N'fgfdg', N'32222222222', N'22222222222', N'fgsd',(select dbo.ShamsiToMiladi(N'1396/11/30')), N'14:47:27',  N'dsg', 'System.Byte[]', 'System.Byte[]')"

    این درست اطلاعات در حال ارسال به سمت سرور هستش گرفتم همه شون درست میفرسته ولی مقدار که بابت تصویر به این صورت {byte[37473]} داره ارسال میکنه برای مقدار تصویر به این صورت

    System.Byte[] خالی رها میکنه
    آخرین ویرایش به وسیله davidrobert : دوشنبه 30 بهمن 1396 در 14:26 عصر

  5. #5

    نقل قول: ذخیره تصویر در سه لایه

    از پارامترها استفاده کنید مشکلتون حل میشه.

  6. #6

    نقل قول: ذخیره تصویر در سه لایه

    از حالت پارمتر ها خواستم استفاده کنم بدبختی باز این مشکل دارم نمیتوانم بهش پارمتر بدم ماندم پرامتر رو چطوری بهش بدم تا درست کار کنه

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

  1. ذخیره تصویر در بانک SQL Server یا Access
    نوشته شده توسط smt1383 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 9
    آخرین پست: سه شنبه 13 آذر 1386, 13:00 عصر
  2. پاسخ: 1
    آخرین پست: چهارشنبه 16 آبان 1386, 09:11 صبح
  3. مشکل در ذخیره تصویر در Image Verification
    نوشته شده توسط chaalesh در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: چهارشنبه 09 اسفند 1385, 17:41 عصر
  4. ذخیره تصویر در database
    نوشته شده توسط fatemeh r در بخش Classic ASP
    پاسخ: 16
    آخرین پست: دوشنبه 16 بهمن 1385, 21:50 عصر
  5. ذخیره تصویر در اوراکل
    نوشته شده توسط ayatch در بخش Oracle
    پاسخ: 5
    آخرین پست: چهارشنبه 24 خرداد 1385, 08:21 صبح

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

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