1. ΕΛΕΓΧΟΙ ΕΓΚΥΡΟΤΗΤΑΣ ΣΕ ΜΙΑ ΦΟΡΜΑ

Σχετικά έγγραφα
Lab1 Ανάπτυξη απλής εφαρµογής. Solutions, Projects, GUI, Events, Debugging.

Lab1 Ανάπτυξη απλής εφαρµογής. Solutions, Projects, GUI, Events, Debugging.

ΣΧΕΣΕΙΣ στην Northwind

Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database

Γράψιμο και Διάβασμα σε φύλλο του Excel

Πώς εκτυπώνουμε μία λίστα εγγραφών από μία Access database (γενικός τρόπος)

Threads. Components. (Download File My.Computer.Network.DownloadFile(" files/list.txt", "C:\Temp\list.

Εφαρμοσμένη Πληροφορική ΙΙ (Εργ.) Visual Basic 2010 Εργαστήριο 6 ο

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Μdi form νέες Solution Explorer Add Windows Form. Startup form Solution Explorer Properties/Application/StartupForm. Add New Item

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

How to register an account with the Hellenic Community of Sheffield.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

Τίτλος: Πρόγραμμα Κοινοχρήστων Πολυκατοικιών. ΠΑΠΑΝΙΚΟΛΑΟΥ ΑΛΕΞΑΝΔΡΟΣ 2891

ΜICROSOFT VISUAL STUDIO Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή

(C) 2010 Pearson Education, Inc. All rights reserved.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Τα αντικείμενα ή Χειριστήρια και οι βασικές ιδιότητες τους (properties)

Το παρόν εκπονήθηκε στο πλαίσιο του Υποέργου 13 «Προσαρµογή Λογισµικού-Φάση ΙΙΙ»

Advanced Subsidiary Unit 1: Understanding and Written Response

4 η Εργαστηριακή Άσκηση

SOAP API. Table of Contents

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά

Ανάπτυξη εφαρμογής Input-Output

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Μπίρμπο Μπλένταρ & Τζούμπα Πηνελόπη

Αρχεία κειμένου και η VB.NET

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

New Project Windows Forms Applications

PortSip Softphone. Ελληνικά Ι English 1/20

Υπολογιστικά Συστήματα

5. MΑΚΡΟΕΝΤΟΛΕΣ. Η δηµιουργία Μακροεντολής γίνεται µε δύο τρόπους :

Κατανεμημένα Συστήματα. Javascript LCR example

Δομές Δεδομένων & Αλγόριθμοι

17TimeThis.h function returns reference pointer to same object { return *this; }

Το παρόν εκπονήθηκε στο πλαίσιο. του Υποέργου 13 «Προσαρµογή Λογισµικού-Φάση ΙΙΙ»

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια

2 Composition. Invertible Mappings

CYTA Cloud Server Set Up Instructions

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Εντολή If-Then-Else Σκοπός Μαθήματος

Πτυχιακή Εργασία των Σπουδαστών: Σταμέλλος Απόστολος Κυμπάρης Κωνσταντίνος

derivation of the Laplacian from rectangular to spherical coordinates

Bizagi Modeler: Συνοπτικός Οδηγός

Homework 3 Solutions

Math 6 SL Probability Distributions Practice Test Mark Scheme

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

Δομές Δεδομένων - Εργαστήριο 2. Λίστες

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗ VISUAL BASIC Γ ΓΥΜΝΑΣΙΟΥ

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 3

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Υπολογιστικά Συστήματα

Περιγραφή της εργασίας

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Zeus ColorControls Ver Manual

C.S. 430 Assignment 6, Sample Solutions

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Προαπαιτούμενες Ασκήσεις 5 ου Εργαστηρίου. Dose stoixeio (integer) : 25 Found stoixeio in position 7 Dose stoixeio (integer) :94 Value not found

Ανάπτυξη εφαρμογής Input-Output

ICTR 2017 Congress evaluation A. General assessment

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

Προγραμματισμός και Εφαρμογές Υπολογιστών

Προσομοίωση BP με το Bizagi Modeler

Assalamu `alaikum wr. wb.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 8η: Producer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

1. ΑΝΟΙΞΤΕ ΤΟΝ ΠΙΝΑΚΑ CUSTOMER ΚΑΙ ΣΤΟ ΜΕΝΟΥ ΕΠΙΛΕΞΤΕ

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

Zeus RelayCommand Ver. 1.0

ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ V ΕΚΠΑΙΔΕΥΤΗΣ ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Πίνακας Περιεχομένων. 1. Locals Window & BreakPoints

2 Visual Basic. Χαριτούδη Γεωργία

ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

Εισαγωγή στον Προγραμματισμό

Transcript:

Αναλυτικά Data Validation FORM LEVEL VALIDATION - DATA LEVEL VALIDATION - επίπεδο φόρμας επίπεδο dataset 1. ΕΛΕΓΧΟΙ ΕΓΚΥΡΟΤΗΤΑΣ ΣΕ ΜΙΑ ΦΟΡΜΑ Έλεγχος εγκυρότητας δεδοµένων σε ένα Control της φόρµας event Validating για έλεγχο εισαγωγής σωστών δεδοµένων property Cancel = true - προτρέπει τον χρήστη να ξαναδώσει σωστά δεδοµένα - µη δινοντάς του την δυνατότητα να αφήσει το control property CancelEventArgs Όταν κλείνει µια φόρµα event FormClosing για έλεγχο της εγκυρότητας των δεδοµένων και προτροπή στον χρήστη να σώσει Aλλαγές σε πίνακα Η µέθοδος GetChanges σε ένα πίνακα, επιστρέφει τις γραµµές του πίνακα µε τις αλλαγές ή Nothing αν δεν υπάρχουν Έλεγχος σωστής εισαγωγής (όχι κενό, δεκαδικός θετικός αριθμός) στην φόρμα Products.vb για το Textbox με όνομα UnitPriceTextBox για το event Validating: (All event handlers in VB 2008 pass two arguments to the application: the sender argument, which is an object that represents the control that fired the event, and the e argument, which provides additional information about the event.) Private Sub UnitPriceTextBox_Validating( ByVal sender As Object,ByVal e As _ System.ComponentModel.CancelEventArgs) Handles UnitPriceTextBox.Validating If UnitPriceTextBox.Text = String.Empty OrElse Not _ Decimal.TryParse(UnitPriceTextBox.Text, 0D) Then 0Decimal MessageBox.Show("Please enter a price", "Products", _ MessageBoxButtons.OK, MessageBoxIcon.Error) Return If Convert.ToDecimal(UnitPriceTextBox.Text) <= 0 Then MessageBox.Show("Price must be higher than 0", "Products", _ MessageBoxButtons.OK, MessageBoxIcon.Error) [1]

e: το event validating cancel = true : δεν θα ολοκληρωθεί Έλεγχος σωστών δεδομένων σε μια οποιαδήποτε φόρμα π.χ. στην φόρμα με όνομα DataValidation γίνεται με το event FormClosing όταν κλείνουμε την φόρμα χωρίς να πατηθεί το SAVE. 1 Private Sub DataValidation_FormClosing(ByVal sender As System.Object, ByVal e As _ System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing If ValidateData() Then If Me.NorthwindDataSet.Products.GetChanges IsNot Nothing Then Dim response As Integer response =MessageBox.Show("Do you want to save your changes?", _ "Changes have been made", _ MessageBoxButtons.YesNoCancel,MessageBoxIcon.Warning) If response = DialogResult.Yes Then If SaveChanges() Then MessageBox.Show("Your changes were saved", "Products", _ MessageBoxButtons.OK) Else ElseIf response = DialogResult.Cancel Then 1 Αυτή η μέθοδος πρέπει να υπάρχει πάντα και σε επίπεδο data form και σε επίπεδο dataset [2]

Ελεγχος της τελευταίας εισαγωγής (πριν το κλείσιµο της φόρµας) Private Function ValidateData() As Boolean If Me.Validate() Then Try Me.ProductsBindingSource.EndEdit() Catch ex As Exception If MessageBox.Show( _ "Invalid data was entered. Cancel edits?", _ "Products", MessageBoxButtons.YesNo, _ MessageBoxIcon.Error) = DialogResult.Yes Then ProductsBindingSource.CancelEdit() End Try End Function Αν ο χρήστης επιλέξει να σώσει τις αλλαγές του γίνεται συνδυαστικός έλεγχος π.χ. για προϊόντα µε τιµές >25$ πρέπει η επαναπαραγγελία <100 Private Function SaveChanges() As Boolean If ValidateData() Then If ReorderLevelTextBox.Text <> String.Empty Then If Convert.ToDecimal( _ UnitPriceTextBox.Text) > 25 And _ Convert.ToInt32( _ ReorderLevelTextBox.Text) > 100 Then MessageBox.Show( _ "Products that cost more than $25 " & _ "must have a reorder level below 100", _ "Products", MessageBoxButtons.OK, _ MessageBoxIcon.Information) Me.TableAdapterManager.UpdateAll( Me.NorthwindDataSet) End Function Όµως οι έλεγχοι αυτοί πρέπει να επαναλαµβάνονται κάθε φορά που ένα πεδίο βρίσκεται σε άλλη φόρµα! Λύση -> Να γίνεται ο έλεγχος στο DATASET, χρησιµοποιώντας τα events των DataTable [3]

2. ΕΛΕΓΧΟΙ ΕΓΚΥΡΟΤΗΤΑΣ ΣΕ ΕΠΙΠΕΔΟ DATASET DataTable events: ColumnChanging - update µιας στήλης RowChanging - update µιας γραµµής TableNewRow προσθήκη µιας νέας γραµµής DataTable properties: Κάθε πίνακας έχει την ΗasErrors property. Κάθε γραµµή- εγγραφή ενός πίνακα έχει την RowError property. ΕrrorProvider πάνω στην φόρµα Στο αρχείο NorthwindDataSet.vb 2 που είναι η Partial Class NorthwindDataSet, θα πρέπει να υπάρχει µέσα µια Partial Class για κάθε πίνακα π.χ. για τον πίνακα Products η Partial Class ProductsDataTable Partial Class NorthwindDataSet Partial Class ProductsDataTable Private Sub ProductsDataTable_ColumnChanging(ByVal sender As Object, _ ByVal e As System.Data.DataColumnChangeEventArgs) _ Handles Me.ColumnChanging If e.column.columnname = "UnitPrice" Then If Convert.ToDecimal(e.ProposedValue) <= 0 Then e.row.setcolumnerror(e.column, _ "Please enter a price greater than $0.") Else e.row.setcolumnerror(e.column, String.Empty) Private Sub ProductsDataTable_ProductsRowChanging (ByVal sender As _ Object, ByVal e As ProductsRowChangeEvent) Handles e.productsrowchanging If e.row.rowstate <> DataRowState.Deleted Then If e.row.unitprice > 25 And e.row.reorderlevel > 100 Then e.row.rowerror ="Products that cost more than $25 must " & _ "have a reorder level below 100" Else e.row.clearerrors() 2 Ανοίγοντας το NorthwindDataSet.xsd δεξί κλικ και ViewCode έχω την Partial Class NorthwindDataSet [4]

Private Sub ProductsDataTable_TableNewRow(ByVal sender As Object, _ ByVal e As System.Data.DataTableNewRowEventArgs) Handles _ Me.TableNewRow Dim productrow As NorthwindDataSet.ProductsRow = _ CType(e.Row, NorthwindDataSet.ProductsRow) productrow.discontinued = False End Class Βάζοντας τον ΕrrorProvider πάνω στην φόρµα Κάθε πίνακας έχει την ΗasErrors property. Κάθε γραµµή- εγγραφή ενός πίνακα έχει την RowError property. Mέσα στην φόρµα Products µπορούν να υπάρχουν και οι κάτωθι συναρτήσεις: Private Function DataHasErrors() As Boolean Dim errorstring As New System.Text.StringBuilder If Me.NorthwindDataSet.Products.HasErrors Then For Each row As DataRow In Me.NorthwindDataSet.Products If row.haserrors Then errorstring.append(row.rowerror & vbcrlf) Next MessageBox.Show("The following errors occurred: " & vbcrlf & _ vbcrlf & errorstring.tostring, "Products", _ MessageBoxButtons.OK, MessageBoxIcon.Error) [5]

End Function Private Function SaveChanges() As Boolean If ValidateData() Then 'είναι η ίδια µέθοδος µε πριν, σελίς 3 If Not DataHasErrors() Then Me.TableAdapterManager.UpdateAll( Me.NorthwindDataSet) End Function Τότε ο αρχικός κώδικας του Save button µε τις τρεις µεθόδους: Validate, EndEdit και UpdateAll, (Private Sub ProductsBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProductsBindingNavigatorSaveItem.Click Me.Validate() Me.ProductsBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.NorthwindDataSet) ) Save Button θα αντικατασταθεί µε την function SaveChanges: Private Sub ProductsBindingNavigatorSaveItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles ProductsBindingNavigatorSaveItem.Click If SaveChanges() Then MessageBox.Show("Your changes were saved", "Products", MessageBoxButtons.OK) [6]