هذا مثال طريقه استخدام تسجيل الدخول بالصفحه مع ربطها بقاعده بيانات من صنعك
مثال بسيط وواضح ( وخصوصا اني اشوف كثير اعضاء يسئلون عن الطريقه )
ولقيت مثال للأخ ابو فارس وكان فيه كم خطا خصوصا في الاكواد ماكتبت بالشرح
وغير كذا بالفيجوال بيسك
هذا المثال بالسي شارب والمثال المرفق ماليه تعليقات كل سطر معلق عليه .
طبعن لست انا مبرمج محترف مبتدئ مثلي مثلكم
طبعن الثال يتكون من صفحتين login و Default.aspx
وقاعده بيانات تتكون من جدول واحد اسمه Pro
يتكون من ثلاث اعمده id , UserName , Pass
صفحه login
انشئت في اثنين تكست بوكس واثنين ليبل واثنين بوتون
اثنين تكست بوكس ( لإدخال اليوزر والباسورد )
اثنين بوتون ( واحد دخول والثاني فحص اسم المستخدم )
الليبل ( واحد يطلع لك نتيجه الفحص اسم المستخدم والثاني يعلمك هل كلمه المرور خطا او لا )
حدث الضغط على الدخول
protected void login_Click(object sender, EventArgs e)
{
string con = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
/* احضار نص الاتصال بقاعد البيانات من web.config */
SqlConnection sqlcon = new SqlConnection(con);
/*انشاء اتصال بقاعده البيانات وتمرير بارمتر نص الاتصال اليها */
sqlcon.Open(); /* فتح الاتصال ليكي يتم الاستعلام من قاعده البيانات */
SqlDataAdapter myadp = new SqlDataAdapter("SELECT * FROM [Pro]", sqlcon);
/* انشاء ادابتر وتمرير بارمتر الاستعلام مع تمرير الاتصال اللي انشائناه */
DataSet mydataset = new DataSet();
/* انشاء داتا ست لكي تحتوي البيانات اللتي جلبناها من قاعده البيانات */
myadp.Fill(mydataset);
/* تم تعبئه الداتا ست بالبيانات اللتي جلبناها عن طريق الادابتر اللي انشائناها */
sqlcon.Close(); /* نغلق الاتصال بالقاعده */
/* قاعده البيانات تتكون من جدول واحد فقط اللي هو جدول Pro
* الجدول يوجد فيه ثلاث اعمده فقط id , UserName, Pass */
DataTable mytabl = new DataTable();
/* انشئنا داتا تيبل لكي نخزن فيه الجدول الموجود في الداتا ست
* يمكن التعامل مع الداتا ست مباشره ولكني فضلت اسناد التيبل الموجود بالداتا ست الى داتا تيبل جديده للفهم فقط */
mytabl = mydataset.Tables[0];
/* تم اسناد وتخزين الجدول الموجود في الداتا ست اللي احضرناه من القاعده وتخزينها بداتا تيبل */
int i;
/* انشئنا متغير بحيث نسند له عدد الصفوف الموجوده بالتيبل لكي نعرف عدد المستخدمين الموجودين بالقاعده لكي يتم عمل لوب */
i = mytabl.Rows.Count;
/* عدد الصفوف الموجوده بالجدول */
i = i - 1;
/* نقصنا 1 من العدد لان قراءه الصفوف في الداتا تيبل تبدا من 0 وليس من 1
* بمعنى ان المستخدم ذو الايدي رقم 1 في قاعده البيانات يكون ترتيبه 0 في الداتا تيبل وهكذا
*/
/*
Label1.Text = mytabl.Rows[1].ItemArray.GetValue(1).ToString();
* في حاله لو تريد رؤيه قيمه الصف الاول العنصر الاول راح يطلعها لك السطر اللي فوق */
for (int j = 0; j <= i; j++)
{
/* هذي لوب عشان تفحص الاسم والباسورد اللي يكتبها المستخدم ويقارنها بالموجود عندنا في الداتا تيبل
* خزنت الشرط في متغير من نوع بول عشان بس اعرف الشرط صح او خطا تتبع البرنامج */
bool m = TextBox1.Text == mytabl.Rows[j].ItemArray.GetValue(1).ToString() && TextBox2.Text == mytabl.Rows[j].ItemArray.GetValue(2).ToString();
if (m)
{
/* في حاله تسجيل الدخول يعرض له سوف يتم تسجل دخولك ويرسله للصفحه الرئيسيه */
Label1.Text = " سوف يتم تسجيل دخولك ";
Response.Redirect("Default.aspx");
break; /* في حال تحقق الشرط هذي جمله تطلعنا من اللوب */
}
else { Label1.Text = "اسم المتسخدم وكلمه المرور خاطئه "; }
};
}حدث الضغط على فحص اسم المستخدم نفس اللي فوق باختلاف بسيط
في الشرط فقط
for (int j = 0; j <= i; j++)
{
bool m = TextBox1.Text == mytabl.Rows[j].ItemArray.GetValue(1).ToString();
if (m)
{
Label2.Text = " اسم المستخدم موجود ";
break;
}
else { Label2.Text = "اسم المتسخدم غير موجود "; }اتمنى اكون فدتكم واي ملاحظه اكتبوها لانني مبتدئ :)
