كيفية القيام بما يلي: التحقق من صحة البيانات عند إضافة صف جديد إلى عنصر تحكم ListObject
ينطبق على |
---|
تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع. نوع المشروع
إصدار Microsoft Office
|
يمكن للمستخدمين إضافة صفوف جديدة إلى عنصر تحكم ListObject المرتبط بالبيانات. يمكنك التحقق من صحة بيانات المستخدم قبل تنفيذ التغييرات على مصدر البيانات.
التحقق من صحة البيانات
عند إضافة صف إلى ListObject المرتبط بالبيانات ، يتم رفع الحدث BeforeAddDataBoundRow . يمكنك معالجة هذا الحدث لتنفيذ التأكيد الخاص بك . على سبيل المثال، إذا كان التطبيق الخاص بك يتطلب إضافة الموظفين فقط بين الأعمار 18 و 65 إلى مصدر البيانات ، يمكنك التحقق من كون العمر المدخل ضمن هذا النطاق أم لا قبل إضافة الصف.
ملاحظة
يجب عليك دائماً التحقق من إدخال المستخدم على الخادم بالإضافة إلى العميل. لمزيد من المعلومات، راجع Secure Client Applications (ADO.NET).
التحقق من صحة البيانات عند إضافة صف جديد إلى ListObject مرتبط بالبيانات
قم بإنشاء متغيرات للمعرف و DataTable في مستوى الفئة .
Dim id As Integer = 0 Dim employeeTable As System.Data.DataTable
private int id = 0; private System.Data.DataTable employeeTable;
قم بإنشاءDataTableجديد و قم بإضافة نموذج للأعمدة و البيانات في معالج الحدث Startup من الفئة Sheet1 (في مشروع على مستوى المستند) أو الفئة ThisAddIn (في مشروع مستوى التطبيق).
employeeTable = New System.Data.DataTable("Employees") Dim column As System.Data.DataColumn = _ employeeTable.Columns.Add("Id", GetType(Int32)) column.AllowDBNull = False employeeTable.Columns.Add("FirstName", GetType(String)) employeeTable.Columns.Add("LastName", GetType(String)) employeeTable.Columns.Add("Age", GetType(Int32)) employeeTable.Rows.Add(id, "Nancy", "Anderson", 56) employeeTable.Rows.Add(id, "Robert", "Brown", 44) id += 1 list1.SetDataBinding(employeeTable, "", "FirstName", "LastName", "Age")
employeeTable = new System.Data.DataTable("Employees"); System.Data.DataColumn column = employeeTable.Columns.Add ("Id", typeof(int)); column.AllowDBNull = false; employeeTable.Columns.Add("FirstName", typeof(string)); employeeTable.Columns.Add("LastName", typeof(string)); employeeTable.Columns.Add("Age", typeof(int)); employeeTable.Rows.Add(id, "Nancy", "Anderson", "56"); employeeTable.Rows.Add(id, "Robert", "Brown", "44"); id++; list1.SetDataBinding(employeeTable, "", "FirstName", "LastName", "Age"); list1.BeforeAddDataBoundRow +=new Microsoft.Office.Tools.Excel. BeforeAddDataBoundRowEventHandler(list1_BeforeAddDataBoundRow);
قم بإضافة تعليمة برمجية إلى معالج الحدث list1_BeforeAddDataBoundRow للتحقق ما إذا كان العمر الذي أدخلته يقع ضمن النطاق المقبول.
Private Sub list1_BeforeAddDataBoundRow(ByVal sender As Object, ByVal e As _ Microsoft.Office.Tools.Excel.BeforeAddDataBoundRowEventArgs) _ Handles list1.BeforeAddDataBoundRow Dim row As System.Data.DataRow = (CType(e.Item, System.Data.DataRowView)).Row If Not row("Age") Is Nothing And Not row("Age") Is Convert.DBNull Then Dim ageEntered As Integer = CType(row("Age"), Int32) If ageEntered < 21 Or ageEntered > 65 Then System.Windows.Forms.MessageBox.Show _ ("Age must be between 21 and 65. The row cannot be added.") e.Cancel = True Return End If row("ID") = id id += 1 Else System.Windows.Forms.MessageBox.Show("You must enter an age.") e.Cancel = True End If End Sub
private void list1_BeforeAddDataBoundRow(object sender, Microsoft.Office.Tools.Excel.BeforeAddDataBoundRowEventArgs e) { System.Data.DataRow row = ((System.Data.DataRowView)e.Item).Row; if (row["Age"] != null && row["Age"] != Convert.DBNull) { int ageEntered = (int)row["Age"]; if (ageEntered < 21 || ageEntered > 65) { System.Windows.Forms.MessageBox.Show ("Age must be between 21 and 65. The row cannot be added."); e.Cancel = true; return; } row["ID"] = id; id++; } else { System.Windows.Forms.MessageBox.Show("You must enter an age."); e.Cancel = true; } }
التحويل البرمجي للتعليمات البرمجية
يفترض مثال التعليمات البرمجية هذا وجود ListObject موجودة باسم list1 على ورقة العمل حيث تظهر هذه التعليمات البرمجية.
راجع أيضًا:
المهام
كيفية القيام بما يلي: تعيين أعمدة ListObject إلى بيانات
المبادئ
توسيع مستندات Word ومصنفات Excel في وظائف إضافية على مستوى التطبيق في وقت التشغيل
إضافة عناصر تحكم إلى مستندات Office في وقت التشغيل
أتمتة Excel عن طريق استخدام الكائنات الموسعة