PDA

View Full Version : ورودبه سیستم درC#‎‎



F_2012
پنج شنبه 02 شهریور 1391, 16:36 عصر
سلام من تو ورودبه سیستم یه برنامه مشکل دارم. کدای زیادی تو اینترنت هستولی من میخوام اینو درستش کنم.:متفکر: مشکلش اینه که با هر یوزرپسوردی وارد میشه انگاراصلا تو دیتا بیس نمیگرده. :اشتباه: فک میکنم بایدتو شرطش مشکل داشته باشه اما نمیدونم چرا؟

من با procedureنوشتمش این کد سی شارپش:

(textBox1.Text.Length == 0 || textBox2.Text.Length == 0)if

}

MessageBox.Show("شناسهکاربری و شناسه عبور را وارد نمایید", "خطا",MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

vardb = newmashinDataContext();

db.checkusandpass(textBox1.Text,

Convert.ToInt32(textBox2.Text));

if

(db==null)

MessageBox.Show("شناسهکاربری و شناسه اشتباه است.", "خطا",MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

Form0.ActiveForm.Hide();

Form1first = newForm1();

first.ShowDialog();

[/CODE]

اینم کدprocedure:




ALTER PROCEDURE

dbo.checkusandpass(@usernamenchar(10),@passwordint )

AS

select* from[users] whereusername=@usernameandpassword=@password

RETURN



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

Farshid007
پنج شنبه 02 شهریور 1391, 16:57 عصر
دوست عزیز این هایی که اینجوری نوشتی رو عمم هم نمی تونه بخونه
کد ها رو این جا بعد این که کپی پست کردی اون هارو به حالت انتخاب(Select) در بیار و تو نوار ابزار متن این سایت دکمه #C رو بزن تا شکسته بشن!

مثل این کد:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBoxEx.Show("ایا می خواهید از برنامه خارج شوید؟", "خروج", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes)
{
e.Cancel = true;

}
}

SokooteShab1
پنج شنبه 02 شهریور 1391, 19:07 عصر
به جای :

if

(db==null)

از این کد استفاده کن.


DataTable dt = db;


if(dt.Rows.Count==0)

F_2012
شنبه 04 شهریور 1391, 00:37 صبح
اینم صورت مرتب کدم:



if(textBox1.Text.Length == 0 || textBox2.Text.Length == 0)

{

MessageBox.Show("شناسه کاربری و شناسه عبور را وارد
نمایید"
,

"خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;
}

var db = newmashinDataContext();

db.checkusandpass(textBox1.Text,

Convert.ToInt32(textBox2.Text));


if (db == null)

{

MessageBox.Show("شناسه کاربری و شناسه اشتباه
است."
,

"خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else
{
Form0.ActiveForm.Hide();
Form1 first = newForm1();
first.ShowDialog();
}





























ممنون از جوابتون. اما با این کدsokoteshabهم جواب نمیده از dbارور میگیره و میگه که نمیتونه نوع datatableرو به datacontextتبدیل کنه.:ناراحت:

siedmohsen
شنبه 04 شهریور 1391, 07:10 صبح
سلام فکرکنم باید datacontex روتوی یکشی از نوع Datatable ریزی
موفق باشی

ali_habibi1384
شنبه 04 شهریور 1391, 08:00 صبح
كد SP رو هم بذاريد. فكر ميكنم اونم يه بررسي بشه بد نيست. فيلدهاي جدول يوزر هم بذاريد

programerinfonet
شنبه 04 شهریور 1391, 09:31 صبح
توی دستور select حتمأ تاکید کن که دو فیلد رو چک کنه

veniz2008
شنبه 04 شهریور 1391, 10:06 صبح
سلام. اون خطی که مقادیر رو میفرستی، برای تکست باکس ها از Trim استفاده کن. شاید مشکل از اونجا باشه. بصورت زیر :

db.checkusandpass(textBox1.Text.Trim(), Convert.ToInt32(textBox2.Text.Trim()));

F_2012
یک شنبه 05 شهریور 1391, 18:44 عصر
ممنون از پاسخ همه.
راه حل هارو امتحان کردم درست نشد.
اینم کدsp:


ALTER PROCEDURE
dbo.checkusandpass (@username nchar(10),@password

int)
As
select
*
from
[users]
where
username=@username
and
password=@password

RETURN











اینم فیلدهای جدول یوزر:





91890

F_2012
یک شنبه 05 شهریور 1391, 18:55 عصر
این ncharآخری تو جدول اشتباه تو تصویراومده.

F_2012
دوشنبه 13 شهریور 1391, 00:13 صبح
:تشویق::تشویق::تشویق:واقعا کسی پیدا نشد اینو بلد باشه؟؟؟

این همه کد گذاشتم واقعا هیچکس نمیتونه بهم جواب بده؟

behnam_khademi
سه شنبه 14 شهریور 1391, 00:42 صبح
سلام دوست عزیز من از این کد استفاده میکنم امیدوارم به دردت بخوره.

try
{
string connection = "نام بانک";
using (SqlConnection conn = new SqlConnection(connection))
{
using (SqlCommand cmd = new SqlCommand("نام پروسیجرت"))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@IDPersonel", TxtPersonel.Text));
cmd.Parameters.Add(new SqlParameter("@Pass", TxtPass.Text));
conn.Open();
cmd.Connection = conn;
using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection) )
{
if (rdr.Read())
{
if ((rdr["IDPersonel"].ToString() == TxtPersonel.Text) && (rdr["Pass"].ToString() == TxtPass.Text))
{
کار دلخواه شما
}
}
else
{
LablMessage.ForeColor = Color.Red;
LablMessage.Text = "نام کاربری یا کلمه عبود اشتباه می باشد ";
}
rdr.Close();
}
}
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}

saeedrasooly
سه شنبه 14 شهریور 1391, 00:55 صبح
سلام ببخشید یه سوال

امنیت این روش بالاتره برای ورود به سیستم یا استفاده از Setting

ممنون

F_2012
دوشنبه 03 مهر 1391, 16:05 عصر
چقدر جواب؟؟؟؟؟؟؟
یعنی یه نفرم نتونست بهم جواب بده؟
چرا پستای قبلیمو حذف کردین؟

F_2012
دوشنبه 03 مهر 1391, 16:11 عصر
واقعا ممنونم از شما. دستتون درد نکنه.
ببخشید پاسخ شما رو ندیدم. راستش من فقط می خوام اون کد رو درستش کنم. ایرادشو بفهمم. وگرنه درسته اکثرا از کد شما استفاده می کنن.