مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

jimcode

عضویت از 1395/09/08

ساخت session از داده منحصربفرد در جدول دیتابیس و استفاده از آن

  • پنجشنبه 22 تیر 1396
  • 18:17
تشکر میکنم

با سلام 

دو تا user control دارم، که اولین user control در صفحه اصلی باز زدن دکمه نمایش کاربران، تعداد کاربران را از جدول users  نمایش میدهد که شامل نام و نام خانوادگی و... است و یک دکمه جزییات کاربران که در اولین user control قرار دارد. حالا قرار است با زدن دکمه جزییات کاربران به user control دوم منتقل شود که یوزر کنترل دوم اطلاعاتش را از جدول detail user می گیرد که هر کاربر هم شامل تعدادی اطلاعات است  که در جدول detail user ثبت میشود که این تعداد هم باید در یوزر کنترل دوم نمایش داده شود.

اطلاعات منحصربفردی که در جدول user دارم یک user id است و دوم managerCode است که مربوط به userid هایی است که به این کد اختصاص می یابد مثلا کد مدیر یک 22 است و هر کاربری که مدیر یک آن را ثبت کند کد 22 متعلق به آن کاربر میشود.  و اطلاعات منحصربفرد در جدول detail user یک userid است که از جدول user منتقل میشود به همراه managerCode آن

سوالم این است که چگونه می توانم از user control اول، که اطلاعات را از جدول user نشان میدهد، یک session از userid آن بسازم که بتوانم در یوزر کنترل دوم که از جدول detail user استفاده می کند اطلاعات و تعداد جزییات مربوط به هر کاربر  را نمایش دهم.

سپاسگذارم راهنمایی می کنید.

پاسخ های این پرسش

تعداد پاسخ ها : 10 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 23 تیر 1396
  • 10:14

نیازی به ساخت سشن نیست

هر موقع روی کلیدی در UserControl اول یا همان نمایش جزئیات کلیک شد id را به کد ارسال کنید و usercontrol دوم را نمایش دهید

کاربر سایت

jimcode

عضویت از 1395/09/08

  • جمعه 23 تیر 1396
  • 18:15

یک راهنمایی می فرمایید که از چه دستوری باید استفاده کنم روش های مختلفی رو از قبیل ساخت delegte یا event  و یا ایجاد set و get برای property در یوزرکنترل اول را بررسی کردم اما به نتیجه نرسیدم که چطور از userId که در یوزرکنترل اول است در دومی استفاده کنم که بتوانم از طریق dataset و propertyها مربوطه اطلاعات را نشان دهم sad

سپاسگذارم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 23 تیر 1396
  • 20:15

این لینک رو ببینید

کاربر سایت

jimcode

عضویت از 1395/09/08

  • یکشنبه 25 تیر 1396
  • 16:30

جناب مدائنی لینک شما و دیگر لینک ها رو بررسی کردم اما متاسفانه موفق به این انتقال نشدم که بتوانم userId که در user control اول منتقل می شود از صفخه اصلی را دوباره بتوانم استفاده کنم حتی  برای property که برای lable که userId نمایش می دهد بصورت set و get نوشتم

public string prop_userId
{
;get{this.lblUserId}
set{lblUserId.Text =  value;}
}

ویا این کد هم نوشتم

public string prop_userId
{
;set{lblUseID.Text = value}
}
public string Lable getUserId{
this.lblUserId
}

و باید این userId رو بگیرم در تابع getData در dataset بدم تا تفکیک هر کاربر مشخص شود

که همین این کارها در user control اول انجام میشه

سپاسگذارم.

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 25 تیر 1396
  • 16:47

میتونید کد کاربر رو در سشن قرار  دهید و در USERcONTROL دوم بگیرید و عملیات را انجام دهید

کاربر سایت

jimcode

عضویت از 1395/09/08

  • یکشنبه 25 تیر 1396
  • 17:30

کد کاربر بصورت object در سشن قرار میگیرد و باید بصورت int تبدیل کنم این تبدیل چگونه انجام میشود؟

سپاسگذارم 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 25 تیر 1396
  • 18:46

convert.toInt استفاده کنید

کاربر سایت

jimcode

عضویت از 1395/09/08

  • یکشنبه 25 تیر 1396
  • 22:59

کاری که فرمودین را انجام دادم اما قبول نکرد من کد و پیغام خطا رو میذارم جناب مدائنی عزیر

این کد در user control اول در رویداد دکمه نمایش جزییات نوشته شده و زمانی که کلیک میشود چیزی از user control دوم نشان نمی دهد

	int uid ;
        int.TryParse(Session["userId"].ToString(), out uid);
        ASP.manager_usecont_detailforuser_ascx deus;
        ds_UserProgressTableAdapters.table_Residental_PayAndExtraTableAdapter c = new ds_UserProgressTableAdapters.table_Residental_PayAndExtraTableAdapter();
        ds_UserProgress.table_Residental_PayAndExtraDataTable dtc = c.SelectUserId(Convert.ToInt32(uid));
        for (int i = 0; i < dtc.Rows.Count; i++)
        {
            deus = new ASP.manager_usecont_detailforuser_ascx();
            PlaceHolder1.Controls.Add(deus);
            deus.prop_ExtraNote = dtc.Rows[i]["date"].ToString();
        }

متعیر deusمربوط به user control دوم می شود و اینکه در قسمت متغییر dtc خط قرمزی زیر c.selectUserId کشیده شده است و پیفام زیر را نشان می دهد

int Convert.ToInt32(int value)
Return The specified 32-bit signed integer; no actual conversion is Performed

cannot implicitly convert 'object' to 'ds_UserProgress.table_Residental_PayAndExtraDataTable' An explicit conversion exists (are you missing a cast?)

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • دوشنبه 26 تیر 1396
  • 09:57

متاسفانه من از کدهاتون سر در نمیارم

  int.TryParse(Session["userId"].ToString(), out uid);

کد بالا بی استفاده است و چه استفاده ای کردید ؟

کاربر سایت

jimcode

عضویت از 1395/09/08

  • دوشنبه 26 تیر 1396
  • 11:15

//بخش از کدی که در صفحه اصلی بازدن دکمه نمایش کاربران منجر به نمایش یوزرکنترل اول میشود و ساخت سشن مربوطه


Session.Add("userid",dt.Rows[i]["userid"];
showuser.prop_userid=session["userid"].ToSteing();

حالا دکمه نمایش جزییات کاربران در یوزرکنترل اول قرار دارد که باز زدن آن باید نسبت به userid که از صفحه اصلی به یوزرکنترل اول منتقل شده تعداد همان userid مربوطه را در یوزرکنترل دوم نمایش دهد یعنی اگر userid عدد 24 است بازدن دکمه جزییات کاربران هر چقدر userid با عدد 24 ثبت شده است را در یوزرکنترل دوم نمایش دهد.

در کدی که فرمودید که چه استفاده ای کردم به این دلیل استفاده کردم چون این سشن بصورت object است  و. باید به int تبدیل میشد که بتوانم در stored proecdure که در dataset برای userid ایجاد کردم استفاده کنم اما متاسفانه قبول نمی کرد حتی از convert.toInt هم استفاده کردم

سپاس

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)