11-03-13, 08:50 PM
الآن لننشئ نموذج إضافة مستخدم جديد، وليكن اسمه AddNewUser، وخصائصه كما خصائص نموذج تسجيل الدخول، الأدوات التي سندرجها عليه هي: أداتي Label وأداتي TextBox وأداتي CheckBox و Button، نضبط مواقعهن، والخصائص كما يلي:
[TABLE="class: grid, width: 500, align: right"]
[TR]
[TD]الأداة
[/TD]
[TD]خاصية الاسم Name[/TD]
[TD]خاصية النص Text[/TD]
[/TR]
[TR]
[TD]Label1[/TD]
[TD][/TD]
[TD]اسم المستخدم[/TD]
[/TR]
[TR]
[TD]Label2[/TD]
[TD][/TD]
[TD]كلمة المرور[/TD]
[/TR]
[TR]
[TD]textBox1[/TD]
[TD]unbox[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]textBox2[/TD]
[TD]pasbox[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]checkBox1[/TD]
[TD]admin[/TD]
[TD]مدير[/TD]
[/TR]
[TR]
[TD]checkBox1[/TD]
[TD]active[/TD]
[TD]مفعل[/TD]
[/TR]
[TR]
[TD]button1[/TD]
[TD][/TD]
[TD]حفظ[/TD]
[/TR]
[/TABLE]
داخل الحدث الخاص بضغط الزر إضافة، نكتب الكود التالي:
الآن نضيف نموذج جديد للمشروع ونسميه EditUser، نضبط خصائصه كما نموذج تسجيل الدخول، ونلقي عليه أداة Labe وأداة ComboBox وأداتي CheckBox وأداتين Button، نضبط مواقع الأدوات، والخصائص نجعلها كما يلي:
[TABLE="class: grid, width: 500, align: right"]
[TR]
[TD]الأداة
[/TD]
[TD]خاصية الاسم Name[/TD]
[TD]خاصية النص Text[/TD]
[/TR]
[TR]
[TD]Label1[/TD]
[TD][/TD]
[TD]اسم المستخدم[/TD]
[/TR]
[TR]
[TD]comboBox1[/TD]
[TD]unlist[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]checkBox1[/TD]
[TD]admin[/TD]
[TD]مدير[/TD]
[/TR]
[TR]
[TD]checkBox1[/TD]
[TD]active[/TD]
[TD]مفعل[/TD]
[/TR]
[TR]
[TD]button1[/TD]
[TD][/TD]
[TD]حفظ[/TD]
[/TR]
[/TABLE]
أداة الـ comboBox1 نعدل فيها خاصيتي:
ثم ننتقل لحدث تحميل النموذج، لنكتب:
قمنا بجلب بيانات المستخدمين، من خلال جملة التحديد (والتي تم شرحها فيما سبق)، ثم اسندنا البيانات للقائمة من خلال خاصية DataSource، ثم استعرضنا فيها اسماء المستخدمين (لأنها تحتوي على اكثر من صف، نريد استعراض الاسم فقط)، من خلال الخاصية DisplayMember.
في حدث SelectedIndexChanged التابع للأداة unlist:
وفي حدث زر الحفظ:
السطر الأول عرفنا متغير من الفئة Users، وقد أخذنا القيمة من قائمة الأسماء، والتي تحتوي على البيانات التي أدرجناها في حدث التحميل، وخاصية الـ SelectedValue التابعة للأداة، ما هي إلا صف يمثل البيانات.
في حدث زر الحذف:
[TABLE="class: grid, width: 500, align: right"]
[TR]
[TD]الأداة
[/TD]
[TD]خاصية الاسم Name[/TD]
[TD]خاصية النص Text[/TD]
[/TR]
[TR]
[TD]Label1[/TD]
[TD][/TD]
[TD]اسم المستخدم[/TD]
[/TR]
[TR]
[TD]Label2[/TD]
[TD][/TD]
[TD]كلمة المرور[/TD]
[/TR]
[TR]
[TD]textBox1[/TD]
[TD]unbox[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]textBox2[/TD]
[TD]pasbox[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]checkBox1[/TD]
[TD]admin[/TD]
[TD]مدير[/TD]
[/TR]
[TR]
[TD]checkBox1[/TD]
[TD]active[/TD]
[TD]مفعل[/TD]
[/TR]
[TR]
[TD]button1[/TD]
[TD][/TD]
[TD]حفظ[/TD]
[/TR]
[/TABLE]
داخل الحدث الخاص بضغط الزر إضافة، نكتب الكود التالي:
:#C
كود :
[align=left]if (String.IsNullOrEmpty(unbox.Text.Trim()) || String.IsNullOrEmpty(pasbox.Text.Trim()))
{ MessageBox.Show("يجب إكمال البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; }
DB.PhoneBookDB db = new DB.PhoneBookDB();
try
{
var users = from u in db.Users
where u.Username == unbox.Text.Trim()
select u;
if (users.Count() > 0)
{
MessageBox.Show("لقد أدخلت اسم موجود، قم باختيار اسم آخر", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
catch { return; }
DB.Users user = new DB.Users();
user.Username = unbox.Text.Trim();
user.Password = pasbox.Text.Trim();
user.Admin = admin.Checked;
user.Active = active.Checked;
db.Users.InsertOnSubmit(user);
try
{
db.SubmitChanges();
MessageBox.Show("تم إضافة المستخدم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
unbox.Text = String.Empty;
pasbox.Text = String.Empty;
unbox.Focus();
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }
[/align]:VB
كود :
[align=left]If String.IsNullOrEmpty(unbox.Text.Trim()) OrElse String.IsNullOrEmpty(pasbox.Text.Trim()) Then
MessageBox.Show("يجب إكمال البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return
End If
Dim db As New DB.PhoneBookDB()
Try
Dim users = From u In db.Users
Where u.Username = unbox.Text.Trim()
Select u
If users.Count() > 0 Then
MessageBox.Show("لقد أدخلت اسم موجود، قم باختيار اسم آخر", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return
End If
Catch
Exit Sub
End Try
Dim user As New DB.Users()
user.Username = unbox.Text.Trim()
user.Password = pasbox.Text.Trim()
user.Admin = admin.Checked
user.Active = active.Checked
db.Users.InsertOnSubmit(user)
Try
db.SubmitChanges()
MessageBox.Show("تم إضافة المستخدم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
unbox.Text = String.Empty
pasbox.Text = String.Empty
unbox.Focus()
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
[/align][TABLE="class: grid, width: 500, align: right"]
[TR]
[TD]الأداة
[/TD]
[TD]خاصية الاسم Name[/TD]
[TD]خاصية النص Text[/TD]
[/TR]
[TR]
[TD]Label1[/TD]
[TD][/TD]
[TD]اسم المستخدم[/TD]
[/TR]
[TR]
[TD]comboBox1[/TD]
[TD]unlist[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]checkBox1[/TD]
[TD]admin[/TD]
[TD]مدير[/TD]
[/TR]
[TR]
[TD]checkBox1[/TD]
[TD]active[/TD]
[TD]مفعل[/TD]
[/TR]
[TR]
[TD]button1[/TD]
[TD][/TD]
[TD]حفظ[/TD]
[/TR]
[/TABLE]
أداة الـ comboBox1 نعدل فيها خاصيتي:
AutoCompleteMode = SuggestAppend
AutoCompleteSource = ListItems
المتغير المعتاد: (عام خارج أي إجراء)AutoCompleteSource = ListItems
:#C
كود :
[align=left]private DB.PhoneBookDB db = new DB.PhoneBookDB();
[/align]:VB
كود :
[align=left]Private db As New DB.PhoneBookDB()
[/align]:#C
كود :
[align=left]try
{
var users = from u in db.Users
select u;
unlist.DataSource = users;
unlist.DisplayMember = "Username";
unlist_SelectedIndexChanged(sender, e);
}
catch { }
[/align]:VB
كود :
[align=left]Try
Dim users = From u In db.Users
Select u
unlist.DataSource = users
unlist.DisplayMember = "Username"
unlist_SelectedIndexChanged(sender, e)
Catch
End Try
[/align]في حدث SelectedIndexChanged التابع للأداة unlist:
:#C
كود :
[align=left] try
{
DB.Users user = (DB.Users)unlist.SelectedValue;
admin.Checked = user.Admin;
active.Checked = user.Active;
}
catch { }
[/align]:VB
كود :
[align=left] Try
Dim user As DB.Users = CType(unlist.SelectedValue, DB.Users)
admin.Checked = user.Admin
active.Checked = user.Active
Catch
End Try
[/align]:#C
كود :
[align=left] try
{
DB.Users user = (DB.Users)unlist.SelectedValue;
user.Admin = admin.Checked;
user.Active = active.Checked;
db.SubmitChanges();
MessageBox.Show("تم تحديث البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch { }
[/align]:VB
كود :
[align=left] Try
Dim user As DB.Users = CType(unlist.SelectedValue, DB.Users)
user.Admin = admin.Checked
user.Active = active.Checked
db.SubmitChanges()
MessageBox.Show("تم تحديث البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch
End Try
[/align]في حدث زر الحذف:
:#C
كود :
[align=left] if (MessageBox.Show("هل أنت متأكد", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return;
try
{
db.Users.DeleteOnSubmit((DB.Users)unlist.SelectedValue);
db.SubmitChanges();
MessageBox.Show("تم حذف المستخدم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch { }
[/align]:VB
كود :
[align=left] If MessageBox.Show("هل أنت متأكد", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then Exit Sub
Try
db.Users.DeleteOnSubmit(CType(unlist.SelectedValue, DB.Users))
db.SubmitChanges()
MessageBox.Show("تم حذف المستخدم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
End Try
[/align]