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

نام تاپیک: تخصصی کردم فرم login

  1. #1
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    تخصصی کردم فرم login

    دوستان من یک فرم لوگین دارم که اگه پسورد و یوزرنیم درست باشه به فرم 1 میره و در غیر اینصورت خطا میده.

    می خوام اینطور عمل کنه:
    اگر پسورد و یوزرنیم درست بود و این کاربر فیلد role آن برابر با admin بود فرم 1 باز بشه و اگر برابر با user بود فرم 2 باز بشه و اگر برابر با vip بود فرم 3 باز بشه.

    یعنی اول بیاد چک کنه ببینه پسورد و یوزرنیم درست هست یا نه (تا اینجاش را خودم نوشتم.) بعد بیاد بعد از اینکه پسورد و یوزرنیم درست بود فیلد role را چک کنه و با توجه به اون فرم مورد نظر را باز کنه.


    کد من:

     private void button1_Click(object sender, EventArgs e)
    {

    objCommand = new SqlCommand();

    objConnection.Open();

    objCommand.Connection = objConnection;

    objCommand.CommandText = "select count(*) from users where username='" + username.Text + "' and password='" + password.Text + "'";

    int value;

    value = (int)objCommand.ExecuteScalar();

    if (value == 1)
    {

    Thread form = new Thread(new ThreadStart(Form1));

    form.Start();

    this.Close();

    }

    else

    MessageBox.Show("نام کاربری یا رمز ورودی اشتباه است");

    objConnection.Close();


    }
    private void Form1()
    {

    Form1 frmm = new Form1();

    Application.Run(frmm);

    }

  2. #2

    نقل قول: تخصصی کردم فرم login

    متوجه نشدم اون چیزی که من متوجه شدم جوابش خیلی آسونه.شاید منظوره شما چیزه دیگری هست.

    با گذاشتن شرط و برابری با مقدار های مورنظر می تونید به هر فرمی که می خواهید بروید

  3. #3
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: تخصصی کردم فرم login

    میشه کد من را به اون چیزی که گفتین تغییر بدین؟

  4. #4

    نقل قول: تخصصی کردم فرم login

    private void button1_Click(object sender, EventArgs e)
    {

    objCommand = new SqlCommand();

    objConnection.Open();

    objCommand.Connection = objConnection;

    objCommand.CommandText = "select count(*) from users where username='" + username.Text + "' and password='" + password.Text + "'";

    int value;

    value = (int)objCommand.ExecuteScalar();

    if (value == 1)
    {

    if(type=="1")
    {
    frmMain frm=new frmMain();
    frm.Show();
    }
    else if (type == "2")
    {
    frm1 frm = new frm1();
    frm.Show();
    }
    else if (type == "3")
    {
    frm3 frm = new frm3();
    frm.Show();
    }
    this.Close();

    }

    else

    MessageBox.Show("نام کاربری یا رمز ورودی اشتباه است");

    objConnection.Close();


    }

  5. #5

    نقل قول: تخصصی کردم فرم login

    بجای Type فیلد نوع حساب کاربری رو واکشی کنید.همین
    موفق باشید

  6. #6
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: تخصصی کردم فرم login

    نقل قول نوشته شده توسط imanamami مشاهده تاپیک
    بجای Type فیلد نوع حساب کاربری رو واکشی کنید.همین
    موفق باشید
    یعنی چکار کنم؟
    اسم فیلدی که گفتم role هست توی دیتابیس

  7. #7
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: تخصصی کردم فرم login

    میشه بیشتر توضیح بدین؟

  8. #8

    نقل قول: تخصصی کردم فرم login

    راه ساده تر اینه که فیلد role رو به صورت عددی تعریف کنید
    اگر یک بود مدیر اگر 2 بود کاربر عادی و.......
    کافیه بعد از چک کردن صحت نام کاربری وپسورد یه شرط برا باز شدن صفحه بزارید

  9. #9
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: تخصصی کردم فرم login

    نقل قول نوشته شده توسط ma.rad مشاهده تاپیک
    راه ساده تر اینه که فیلد role رو به صورت عددی تعریف کنید
    اگر یک بود مدیر اگر 2 بود کاربر عادی و.......
    کافیه بعد از چک کردن صحت نام کاربری وپسورد یه شرط برا باز شدن صفحه بزارید
    میشه کد من را به این صورتی که گفتین تغییر بدین؟

  10. #10
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: تخصصی کردم فرم login

    واضح تر بگم:

    جدول من شامل سه فیلد هستش:

    username
    password
    role

    فیلد role یکی از سه مقدار admin یا user یا register را خواهد داشت.

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

    مثلا کاربری که مقدار فیلد role اون برابر با admin هست با وارد کردن یوزرنیم و پسوردش در فرم لوگین می کنه و برای این کاربری که مقدار فیلد role اون برابر با admin باشه یه سری دستور خاص اجرا بشه. حالا اگر این کاربر مقدار role اون user یا register بود باید دستوراتی دیگه اجرا بشه.


    من الگوریتمش را می نوسیسم شما کدش را بهم بگین.

    1. از دیتابیس user فیلد هاش را نشون بده:
    SELECT * " + " FROM users where username='" + username.Text + "' and password='" + password.Text + "'"


    2. بررسی کن که username و پسورد برابر با مقدار داخل دیتابیس باشه
    3. اگر یورنیم و پسورد صحیح نبود پیغام خطا بده
    4. اگر یوزرنیم و پسورد صحیح بود مقدار role را بررسی کن که اگر مساوی با admin بود دستور 1 اجرا بشه و اگر مساوی با user بود دستور 2 اجرا بشه و اگر مساوی با register بود دستور 3 اجرا بشه.

    نمی دونم خوب رسوندم؟

  11. #11

    نقل قول: تخصصی کردم فرم login

    if(dt.rows[0]["role"].tostring==1)
    دستور بازشدن فرم اول

  12. #12
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: تخصصی کردم فرم login

    یه دنیا ممنون

    اگه میشه کد را تشریح کنید.

    dt یعنی چی؟

    چرا tostring==1؟
    مقدار admin و user و register را چطور جک کنم؟
    لطفا ساده بگین من حرفه ای نیستم.

  13. #13
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: تخصصی کردم فرم login

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






     private void button1_Click(object sender, EventArgs e)
    {



    objCommand = new SqlCommand();

    objConnection.Open();

    objCommand.Connection = objConnection;

    objCommand.CommandText = "select count(*) from users where username='" + username.Text + "' and password='" + password.Text + "'";

    int value;

    value = (int)objCommand.ExecuteScalar();

    if (value == 1)
    {



    if EXISTS("Select * from users WHERE role='مدیر نرم افزار'")
    {

    Thread form = new Thread(new ThreadStart(Form1));

    form.Start();

    this.Close();

    }
    else
    {

    Thread form = new Thread(new ThreadStart(labform));

    form.Start();

    this.Close();

    }

    }

    else

    MessageBox.Show("نام کاربری یا رمز ورودی اشتباه است");

    objConnection.Close();

    }

    private void Form1()
    {

    Form1 frmm = new Form1();

    Application.Run(frmm);

    }

    private void labform()
    {

    labform frmmlab = new labform();

    Application.Run(frmmlab);

    }




    مشکل توی دستور زیر:

      if EXISTS("Select * from users WHERE role='مدیر نرم افزار'")

  14. #14
    کاربر دائمی آواتار B.I.O.H.A.Z.A.R.D
    تاریخ عضویت
    تیر 1388
    محل زندگی
    قزوین
    پست
    198

    نقل قول: تخصصی کردم فرم login

    آقا توی اون تاپیک هم صحبت از همیناست قضیه چیه؟

    دستوری که خطا داره Query هستش، و باید قبل از select و داخل کوتیشن باشه. متوجه شدید؟ مثل دستورای دیگه sql میمونه. کد C#‎ نیست که به اون صورت نوشتید!

  15. #15

    نقل قول: تخصصی کردم فرم login

    کی پست های منو پاک می کنه؟

  16. #16

    نقل قول: تخصصی کردم فرم login

    دفعه بعد ببینم پست های منو کسی پاک کنه دیگه پست نمی زارم

  17. #17
    کاربر دائمی آواتار B.I.O.H.A.Z.A.R.D
    تاریخ عضویت
    تیر 1388
    محل زندگی
    قزوین
    پست
    198

    نقل قول: تخصصی کردم فرم login

    نقل قول نوشته شده توسط imanamami مشاهده تاپیک
    دفعه بعد ببینم پست های منو کسی پاک کنه دیگه پست نمی زارم
    اگر پست شما پاک شده باشه جلوش نوشته میشه توسط چه کسی و چرا پاک شده.

  18. #18

    نقل قول: تخصصی کردم فرم login

    یه همچین چیزی چون بعضی جاهاش مشخص نبود

    objCommand =
    new SqlCommand();
    objConnection.Open();
    objCommand.Connection = objConnection;
    objCommand.CommandText =
    "select * from users ";

    SqlDataAdapter da = newSqlDataAdapter();
    DataTable dt = newDataTable();
    da.SelectCommand = objCommand;
    da.Fill(dt);
    if (txtpass.Text == dt.Rows[0]["pass"].ToString() && txtuser.Text == dt.Rows[0]["user"].ToString() && dt.Rows[1]["role"].ToString()==1)
    {
    Form1 fm = newForm1();
    this.Hide();
    fm.ShowDialog();
    }
    elseif (txtpass.Text == dt.Rows[1]["pass"].ToString() && txtuser.Text == dt.Rows[1]["user"].ToString() && dt.Rows[1]["role"].ToString()==2)
    {
    Form2 fm =
    new Form2();
    this.Hide();
    fm.ShowDialog();
    }
    else
    {
    MessageBox.Show(
    "نام کاربری و یا کلمه عبور صحیح نمی باشد", "پیام خطا ",MessageBoxButtons.OK,MessageBoxIcon.Warning,Messa geBoxDefaultButton.Button1,MessageBoxOptions.Right Align);
    txtuser.Clear();
    txtpass.Clear();
    txtuser.Focus();
    }

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

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