السلام عليكم
تعديل البيانات:
C#
VB
تحميل البيانات من الجدول في قاعدة البيانات:
اولا نضيف الدالة التالية:
C#
VB
ثانيا
C#
VB
عرض اول سجل
C#
VB
عرض اخر سجل
C#
VB
عرض السجل التالي
C#
VB
عرض السجل السابق
C#
VB
زر البحث
C#
VB
تفعيل اضافة سجل جديد
C#
VB
دالة التفعيل
C#
VB
الغاء التفعيل
C#
VB
عرض السجلات في الDataGridView
C#
VB
طباعة السجل الحالي
C#
VB
طباعة السجلات المحددة من الDataGridView عن طريق الفأرة
C#
VB
طباعة كافة السجلات
C#
VB
عرض الصفحة التالية في الDataGridView (5 سجلات في كل صفحة)
C#
VB
عرض الصفحة السابقة في الDataGridView
C#
VB
كما تلاحظون استخدام دالة الGetRange للList حيث نحدد البداية و النهاية (الصفحة تبدأ من اول سجل الى خامس سجل أي عرض 5 سجلات في كل صفحة)
[b]المثال في المرفقات بلغة C# بدون قاعدة بيانات
هذا والحمد لله الذي وفقنا لإتمام هذا الموضوع اسأل الله ان يوفقنا وإياكم لمراضيه ولا تنسونا من صالح دعواتكم
وصلى الله على محمد وآله الطاهرين
[/b]
تعديل البيانات:
C#
PHP كود :
private void update_btn_Click(object sender, EventArgs e)
{
//Update Data
// التعديل ايضا حسب التسلسل
int id = int.Parse(id_txt.Text);
// Linqتعبير اخر لل
StdInfo s = dbo.GetTable<StdInfo>().Where(c => (c.ID == id)).Single();
s.FName = name_txt.Text;
s.DoB = DateTime.Parse(dob_txt.Text);
s.Address = addr_txt.Text;
dbo.SubmitChanges(); // تأكيد التغييرات على الجدول
load_btn_Click(null, null);
}
VB
PHP كود :
Private Sub update_btn_Click(sender As Object, e As EventArgs)
'Update Data
' التعديل ايضا حسب التسلسل
Dim id As Integer = Integer.Parse(id_txt.Text)
' Linqتعبير اخر لل
Dim s As StdInfo = dbo.GetTable(Of StdInfo)().Where(Function(c) (c.ID = id)).[Single]()
s.FName = name_txt.Text
s.DoB = DateTime.Parse(dob_txt.Text)
s.Address = addr_txt.Text
dbo.SubmitChanges() ' تأكيد التغييرات على الجدول
load_btn_Click(Nothing, Nothing)
End Sub
تحميل البيانات من الجدول في قاعدة البيانات:
اولا نضيف الدالة التالية:
C#
PHP كود :
private void Fill(int pos)
{
Enabled_btns(true);
insert_btn.Enabled = false;
id_txt.Text = student[pos].ID.ToString();
name_txt.Text = student[pos].Fname;
dob_txt.Text = student[pos].DoB.ToString();
addr_txt.Text = student[pos].Address;
}
VB
PHP كود :
Private Sub Fill(pos As Integer)
Enabled_btns(True)
insert_btn.Enabled = False
id_txt.Text = student(pos).ID.ToString()
name_txt.Text = student(pos).Fname
dob_txt.Text = student(pos).DoB.ToString()
addr_txt.Text = student(pos).Address
End Sub
ثانيا
C#
PHP كود :
private void load_btn_Click(object sender, EventArgs e)
{
//Load
if (dbo.StdInfos.Count() > 0)
{
// اختيار جميع السجلات من الجدول في قاعدة البيانات
var ss =
from StdInfo s in dbo.StdInfos
select s;
student = new List<Students>();
foreach (var std in ss)
{
// Studentsاضافة جميع السجلات الى القائمة التي هي من نوع الفئة
student.Add(new Students
{
ID = std.ID,
Fname = std.FName,
DoB = std.DoB,
Address=std.Address
});
// للتكملة التلقائية للكلمات لحقل البحث
srch_txt.AutoCompleteCustomSource.Add(std.FName);
}
Fill(pos);
}
else
{
MessageBox.Show("There is no record in table");
}
}
VB
PHP كود :
Private Sub load_btn_Click(sender As Object, e As EventArgs)
'Load
If dbo.StdInfos.Count() > 0 Then
' اختيار جميع السجلات من الجدول في قاعدة البيانات
Dim ss = From s In dbo.StdInfoss
student = New List(Of Students)()
For Each std As var In ss
' Studentsاضافة جميع السجلات الى القائمة التي هي من نوع الفئة
student.Add(New Students() With { _
Key .ID = std.ID, _
Key .Fname = std.FName, _
Key .DoB = std.DoB, _
Key .Address = std.Address _
})
' للتكملة التلقائية للكلمات لحقل البحث
srch_txt.AutoCompleteCustomSource.Add(std.FName)
Next
Fill(pos)
Else
MessageBox.Show("There is no record in table")
End If
End Sub
عرض اول سجل
C#
PHP كود :
private void first_btn_Click(object sender, EventArgs e)
{
Fill(pos = 0);
}
VB
PHP كود :
Private Sub first_btn_Click(sender As Object, e As EventArgs)
Fill(InlineAssignHelper(pos, 0))
End Sub
عرض اخر سجل
C#
PHP كود :
private void last_btn_Click(object sender, EventArgs e)
{
Fill(pos = student.Count - 1);
}
VB
PHP كود :
Private Sub last_btn_Click(sender As Object, e As EventArgs)
Fill(InlineAssignHelper(pos, student.Count - 1))
End Sub
عرض السجل التالي
C#
PHP كود :
private void next_btn_Click(object sender, EventArgs e)
{
if (pos < student.Count - 1)
{
pos++;
Fill(pos);
}
}
VB
PHP كود :
Private Sub next_btn_Click(sender As Object, e As EventArgs)
If pos < student.Count - 1 Then
pos += 1
Fill(pos)
End If
End Sub
عرض السجل السابق
C#
PHP كود :
private void prev_btn_Click(object sender, EventArgs e)
{
if (pos > 0)
{
pos--;
Fill(pos);
}
}
VB
PHP كود :
Private Sub prev_btn_Click(sender As Object, e As EventArgs)
If pos > 0 Then
pos -= 1
Fill(pos)
End If
End Sub
زر البحث
C#
PHP كود :
private void dosrch_btn_Click(object sender, EventArgs e)
{
//Search Data
load_btn_Click(null, null);
for (i = 0; i < student.Count; i++)
{
if (srch_txt.Text == student[i].Fname)
{
id_txt.Text = student[i].ID.ToString();
name_txt.Text = student[i].Fname;
dob_txt.Text = student[i].DoB.ToString();
pos = i;
}
}
//or
/*std stud =
(
from std s in dclass.GetTable<std>()
where s.FName == src_txt.Text
select s
).SingleOrDefault<std>();
id_txt.Text = stud.ID.ToString();
name_txt.Text = stud.FName;
grade_txt.Text = stud.Grade.ToString();*/
}
VB
PHP كود :
Private Sub dosrch_btn_Click(sender As Object, e As EventArgs)
'Search Data
load_btn_Click(Nothing, Nothing)
For i = 0 To student.Count - 1
If srch_txt.Text = student(i).Fname Then
id_txt.Text = student(i).ID.ToString()
name_txt.Text = student(i).Fname
dob_txt.Text = student(i).DoB.ToString()
pos = i
End If
Next
'or
'std stud =
' (
' from std s in dclass.GetTable<std>()
' where s.FName == src_txt.Text
' select s
' ).SingleOrDefault<std>();
'
' id_txt.Text = stud.ID.ToString();
' name_txt.Text = stud.FName;
' grade_txt.Text = stud.Grade.ToString();
End Sub
تفعيل اضافة سجل جديد
C#
PHP كود :
private void new_btn_Click(object sender, EventArgs e)
{
Enabled_btns(true);
id_txt.Text = name_txt.Text = dob_txt.Text = addr_txt.Text = "";
}
VB
PHP كود :
Private Sub new_btn_Click(sender As Object, e As EventArgs)
Enabled_btns(True)
id_txt.Text = InlineAssignHelper(name_txt.Text, InlineAssignHelper(dob_txt.Text, InlineAssignHelper(addr_txt.Text, "")))
End Sub
دالة التفعيل
C#
PHP كود :
private void Enabled_btns(bool b)
{
name_txt.Enabled = dob_txt.Enabled = insert_btn.Enabled = addr_txt.Enabled = b;
}
VB
PHP كود :
Private Sub Enabled_btns(b As Boolean)
name_txt.Enabled = InlineAssignHelper(dob_txt.Enabled, InlineAssignHelper(insert_btn.Enabled, InlineAssignHelper(addr_txt.Enabled, b)))
End Sub
الغاء التفعيل
C#
PHP كود :
private void cancel_btn_Click(object sender, EventArgs e)
{
Enabled_btns(false);
}
VB
PHP كود :
Private Sub cancel_btn_Click(sender As Object, e As EventArgs)
Enabled_btns(False)
End Sub
عرض السجلات في الDataGridView
C#
PHP كود :
private void show_btn_Click(object sender, EventArgs e)
{
DGV.DataSource = "";
if (dbo.StdInfos.Count() > 0)
{
DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
if (dbo.StdInfos.Count() <= 5)
end = dbo.StdInfos.Count();
DGV.DataSource = student.GetRange(start, end);
DGV.Columns[0].HeaderText = "التسلسل";
DGV.Columns[1].HeaderText = "الاسم الكامل";
DGV.Columns[2].HeaderText = "تاريخ الولادة";
DGV.Columns[3].HeaderText = "العنوان";
}
}
VB
PHP كود :
Private Sub show_btn_Click(sender As Object, e As EventArgs)
DGV.DataSource = ""
If dbo.StdInfos.Count() > 0 Then
DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
If dbo.StdInfos.Count() <= 5 Then
end1 = dbo.StdInfos.Count()
End If
DGV.DataSource = student.GetRange(start, endd)
DGV.Columns(0).HeaderText = "التسلسل"
DGV.Columns(1).HeaderText = "الاسم الكامل"
DGV.Columns(2).HeaderText = "تاريخ الولادة"
DGV.Columns(3).HeaderText = "العنوان"
End If
End Sub
طباعة السجل الحالي
C#
PHP كود :
private void current_btn_Click(object sender, EventArgs e)
{
ReportForm repf = new ReportForm();
rep_source = new ReportDataSource("student", student);
repf.reportViewer1.LocalReport.DataSources.Add(rep_source);
rep_param = new ReportParameter[4];
rep_param[0] = new ReportParameter("ID", id_txt.Text);
rep_param[1] = new ReportParameter("Fname", name_txt.Text);
rep_param[2] = new ReportParameter("Dob", DateTime.Parse(dob_txt.Text).ToShortDateString());
rep_param[3] = new ReportParameter("Address", addr_txt.Text);
repf.reportViewer1.LocalReport.SetParameters(rep_param);
repf.reportViewer1.RefreshReport();
repf.ShowDialog();
}
VB
PHP كود :
Private Sub current_btn_Click(sender As Object, e As EventArgs)
Dim repf As New ReportForm()
rep_source = New ReportDataSource("student", student)
repf.reportViewer1.LocalReport.DataSources.Add(rep_source)
rep_param = New ReportParameter(3) {}
rep_param(0) = New ReportParameter("ID", id_txt.Text)
rep_param(1) = New ReportParameter("Fname", name_txt.Text)
rep_param(2) = New ReportParameter("Dob", DateTime.Parse(dob_txt.Text).ToShortDateString())
rep_param(3) = New ReportParameter("Address", addr_txt.Text)
repf.reportViewer1.LocalReport.SetParameters(rep_param)
repf.reportViewer1.RefreshReport()
repf.ShowDialog()
End Sub
طباعة السجلات المحددة من الDataGridView عن طريق الفأرة
C#
PHP كود :
private void selected_btn_Click(object sender, EventArgs e)
{
ReportForm repf = new ReportForm();
DataGridViewSelectedRowCollection rc = DGV.SelectedRows;
rep_source = new ReportDataSource("student", student);
repf.reportViewer1.LocalReport.DataSources.Add(rep_source);
int i = 0;
string s1 = "", s2 = "", s3 = "", s4 = "";
for (i = 0; i < rc.Count; i++)
{
s1 += rc[i].Cells["ID"].Value.ToString() + Environment.NewLine + Environment.NewLine;
s2 += rc[i].Cells["FName"].Value.ToString() + Environment.NewLine + Environment.NewLine;
s3 += DateTime.Parse( rc[i].Cells["DoB"].Value.ToString()).ToShortDateString() + Environment.NewLine + Environment.NewLine;
s4 += rc[i].Cells["Address"].Value.ToString() + Environment.NewLine + Environment.NewLine;
}
rep_param = new ReportParameter[4];
rep_param[0] = new ReportParameter("ID", s1);
rep_param[1] = new ReportParameter("Fname", s2);
rep_param[2] = new ReportParameter("Dob", s3);
rep_param[3] = new ReportParameter("Address", s4);
repf.reportViewer1.LocalReport.SetParameters(rep_param);
repf.reportViewer1.RefreshReport();
repf.ShowDialog();
}
VB
PHP كود :
Private Sub selected_btn_Click(sender As Object, e As EventArgs)
Dim repf As New ReportForm()
Dim rc As DataGridViewSelectedRowCollection = DGV.SelectedRows
rep_source = New ReportDataSource("student", student)
repf.reportViewer1.LocalReport.DataSources.Add(rep_source)
Dim i As Integer = 0
Dim s1 As String = "", s2 As String = "", s3 As String = "", s4 As String = ""
For i = 0 To rc.Count - 1
s1 += rc(i).Cells("ID").Value.ToString() & Environment.NewLine & Environment.NewLine
s2 += rc(i).Cells("FName").Value.ToString() & Environment.NewLine & Environment.NewLine
s3 += DateTime.Parse(rc(i).Cells("DoB").Value.ToString()).ToShortDateString() & Environment.NewLine & Environment.NewLine
s4 += rc(i).Cells("Address").Value.ToString() & Environment.NewLine & Environment.NewLine
Next
rep_param = New ReportParameter(3) {}
rep_param(0) = New ReportParameter("ID", s1)
rep_param(1) = New ReportParameter("Fname", s2)
rep_param(2) = New ReportParameter("Dob", s3)
rep_param(3) = New ReportParameter("Address", s4)
repf.reportViewer1.LocalReport.SetParameters(rep_param)
repf.reportViewer1.RefreshReport()
repf.ShowDialog()
End Sub
طباعة كافة السجلات
C#
PHP كود :
private void all_btn_Click(object sender, EventArgs e)
{
ReportForm repf = new ReportForm();
rep_source = new ReportDataSource("student", student);
repf.reportViewer1.LocalReport.DataSources.Add(rep_source);
int i = 0;
string s1 = "", s2 = "", s3 = "", s4 = "";
for (i = 0; i < student.Count; i++)
{
s1 += student[i].ID.ToString() + Environment.NewLine + Environment.NewLine;
s2 += student[i].Fname.ToString() + Environment.NewLine + Environment.NewLine;
s3 += DateTime.Parse(student[i].DoB.ToString()).ToShortDateString() + Environment.NewLine + Environment.NewLine;
s4 += student[i].Address.ToString() + Environment.NewLine + Environment.NewLine;
}
rep_param = new ReportParameter[4];
rep_param[0] = new ReportParameter("ID", s1);
rep_param[1] = new ReportParameter("Fname", s2);
rep_param[2] = new ReportParameter("Dob", s3);
rep_param[3] = new ReportParameter("Address", s4);
repf.reportViewer1.PageCountMode = PageCountMode.Actual;
repf.reportViewer1.LocalReport.SetParameters(rep_param);
repf.reportViewer1.RefreshReport();
//Showing the report form
repf.ShowDialog();
}
VB
PHP كود :
Private Sub all_btn_Click(sender As Object, e As EventArgs)
Dim repf As New ReportForm()
rep_source = New ReportDataSource("student", student)
repf.reportViewer1.LocalReport.DataSources.Add(rep_source)
Dim i As Integer = 0
Dim s1 As String = "", s2 As String = "", s3 As String = "", s4 As String = ""
For i = 0 To student.Count - 1
s1 += student(i).ID.ToString() & Environment.NewLine & Environment.NewLine
s2 += student(i).Fname.ToString() & Environment.NewLine & Environment.NewLine
s3 += DateTime.Parse(student(i).DoB.ToString()).ToShortDateString() & Environment.NewLine & Environment.NewLine
s4 += student(i).Address.ToString() & Environment.NewLine & Environment.NewLine
Next
rep_param = New ReportParameter(3) {}
rep_param(0) = New ReportParameter("ID", s1)
rep_param(1) = New ReportParameter("Fname", s2)
rep_param(2) = New ReportParameter("Dob", s3)
rep_param(3) = New ReportParameter("Address", s4)
repf.reportViewer1.PageCountMode = PageCountMode.Actual
repf.reportViewer1.LocalReport.SetParameters(rep_param)
repf.reportViewer1.RefreshReport()
'Showing the report form
repf.ShowDialog()
End Sub
عرض الصفحة التالية في الDataGridView (5 سجلات في كل صفحة)
C#
PHP كود :
private void nextpage_btn_Click(object sender, EventArgs e)
{
if (start < student.Count - 5)
{
start += end;
if (start + 5 > student.Count)
end = student.Count - start;
DGV.DataSource = student.GetRange(start, end);
}
}
VB
PHP كود :
Private Sub nextpage_btn_Click(sender As Object, e As EventArgs)
If start < student.Count - 5 Then
start += endd
If start + 5 > student.Count Then
endd = student.Count - start
End If
DGV.DataSource = student.GetRange(start, endd)
End If
End Sub
عرض الصفحة السابقة في الDataGridView
C#
PHP كود :
private void prevpage_btn_Click(object sender, EventArgs e)
{
if (start > 0)
{
if (end < 5)
end = 5;
start -= end;
DGV.DataSource = student.GetRange(start, end);
}
}
VB
PHP كود :
Private Sub prevpage_btn_Click(sender As Object, e As EventArgs)
If start > 0 Then
If endd < 5 Then
endd = 5
End If
start -= endd
DGV.DataSource = student.GetRange(start, endd)
End If
End Sub
PHP كود :
Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, value As T) As T
target = value
Return value
End Function
كما تلاحظون استخدام دالة الGetRange للList حيث نحدد البداية و النهاية (الصفحة تبدأ من اول سجل الى خامس سجل أي عرض 5 سجلات في كل صفحة)
[b]المثال في المرفقات بلغة C# بدون قاعدة بيانات
هذا والحمد لله الذي وفقنا لإتمام هذا الموضوع اسأل الله ان يوفقنا وإياكم لمراضيه ولا تنسونا من صالح دعواتكم
وصلى الله على محمد وآله الطاهرين
[/b]
