Springen naar inhoud


- - - - -
Solved

Plaats In Code

ASP Controle Datum

  • Log in a.u.b. om te beantwoorden
Er zijn 5 reacties in dit onderwerp

#1 mensje

mensje

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht 29 mei 2015 16:20

Geplaatst op 27 januari 2013 - 22:46

Bij het uitvoeren worden de gegevens in acces weggeschreven , ik zou graag een controle doen zodat men geen toekomstige datum kan geven , maar volgens mij moet ik hem ergens in men bovenste code zetten want nu weergeeft hij wel als het een toekomstige datum is , maar slaagt hij toch op in acces

Code:
Protected Sub btnuitvoeren_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnuitvoeren.Click
	 lblrijk2.Text = ""
	 Try
		 Dim resultaat As New Sinterklaasfuncties.herbruikbareFuncties ' functies in die je altijd kan herbruiken
		 If Len(txtrijk2.Text) = 11 Then
			 If resultaat.rijksregnr(txtrijk2.Text) Then
				 lblrijk2.Visible = False
				 Dim strlid As String

				 strlid = "INSERT INTO tblconsultaties (rijksregnr,consultatiedatum,rapport)"
				 strlid &= " VALUES ('" & txtrijk2.Text & "' , '" & txtdatum2.Text & "' , '" & txtrapport.Text & "' )"
				 With command
					 .Connection = conn
					 .CommandText = strlid
				 End With
				 conn.Open()
				 command.ExecuteNonQuery() ' iets uitvoeren
				 conn.Close()
			 Else
				 lblrijk2.Visible = True
				 lblrijk2.Text = "fout rijksregisternummer "
				 txtrijk2.Text = ""
			 End If
		 Else
			 txtrijk2.Text = ""
			 lblrijk2.Text = "fout rijk nr ingegeven , doe het zo: 00000000000"
		 End If
	 Catch ex As Exception
		 lblrijk2.Text = "fout rijk nr ingegeven , doe het zo: 00000000000"
	 End Try
	 Dim dtedatumcontrole As Date
	 Try

		 dtedatumcontrole = txtdatum2.Text
		 lbldatumcontrole.Text = ""
		 If dtedatumcontrole > Date.Now Then
			 lbldatumcontrole.Text = "u kan geen toekomstige datum ingeven"
			 txtdatum2.Text = ""
		 End If
	 Catch ex As Exception
		 lbldatumcontrole.Text = "dit is geen datum"
	 End Try
End Sub



#2 Benno

Benno

    R.I.P.

  • Leden
  • PipPipPipPipPip
  • 949 berichten
    Laatst bezocht 08 mrt 2018 20:32
  • LocatieGyor, Magyarország

Geplaatst op 27 januari 2013 - 22:57

Bericht bekijkenmensje, op 27 januari 2013 - 22:46, zei:

maar volgens mij moet ik hem ergens in men bovenste code zetten
Ja.

Ook: concateneer niet je Command.CommandText.
Gebruik parameters.

#3 mensje

mensje

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht 29 mei 2015 16:20

Geplaatst op 28 januari 2013 - 19:13

Bericht bekijkenBenno, op 27 januari 2013 - 22:57, zei:

Ja.

Ook: concateneer niet je Command.CommandText.
Gebruik parameters.
parameters zal ik zodadelijk doen , zit nog met klein probleempje bij men schikking

Code:
Protected Sub btnuitvoeren_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnuitvoeren.Click
		lblrijk2.Text = ""
		Try
			Dim dtedatumcontrole As Date
			dtedatumcontrole = txtdatum2.Text
			lbldatumcontrole.Text = ""
			If dtedatumcontrole <= Date.Now Then
				Dim resultaat As New Sinterklaasfuncties.herbruikbareFuncties ' functies in die je altijd kan herbruiken
				If Len(txtrijk2.Text) = 11 Then
					If resultaat.rijksregnr(txtrijk2.Text) Then
						lblrijk2.Visible = False
						Dim strlid As String

						strlid = "INSERT INTO  tblconsultaties (rijksregnr,consultatiedatum,rapport)"
						strlid &= " VALUES ('" & txtrijk2.Text & "' , '" & txtdatum2.Text & "' , '" & txtrapport.Text & "' )"
						With command
							.Connection = conn
							.CommandText = strlid
						End With
						conn.Open()
						command.ExecuteNonQuery() ' iets uitvoeren
						conn.Close()
					Else
						lblrijk2.Visible = True
						lblrijk2.Text = "fout rijksregisternummer "
						txtrijk2.Text = ""
					End If
				Else
					txtrijk2.Text = ""
					lblrijk2.Text = "fout rijk nr ingegeven , doe het zo: 00000000000"
				End If
			Else
				lbldatumcontrole.Text = "u kan geen toekomstige datum ingeven"
				txtdatum2.Text = ""
			End If
		Catch ex As Exception
			lblrijk2.Text = "fout rijk nr ingegeven , doe het zo: 00000000000"
			lbldatumcontrole.Text = "dit is geen datum"
		End Try

	End Sub
End Class



Als ik een toekomstige datum ingeef werkt het prima: hij geeft het aan en slaagt het niet op MAAR  als ik een foute datum ingeef ( bijvoorbeeld een letter of 1 cijfer ) gaat die bij rijksregisternummer plots zeggen dat het fout is.

#4 Benno

Benno

    R.I.P.

  • Leden
  • PipPipPipPipPip
  • 949 berichten
    Laatst bezocht 08 mrt 2018 20:32
  • LocatieGyor, Magyarország

Geplaatst op 29 januari 2013 - 12:48

Je hebt twee voorwaarden.
Die elk nog eens uitgesplitst worden in twee delen.
1. Rijksregister nummer:
1.1 Lengte = 11
1.2 Geldig (modulo 97)
2.Datum
2.1 Geldig datum formaat
2.2 Datum <= vandaag

Je kan de if's voor 1 en 2 niet nesten, en je mag de beide voorwaarden ook niet kortsluiten.
Mijn voorstel: maak 2 functies: IsGeldigeDatum en IsGeldigRijksregisterNummer.
Voer ze beiden uit en doe de insert enkel indien beiden geldig.
Visual Basic Code:
Protected Sub ButtonUitvoeren_Click(sender As Object, e As System.EventArgs) Handles ButtonUitvoeren.Click
	 Dim geldigeDatum As Boolean = IsGeldigeDatum()
	 Dim geldigNummer As Boolean = IsGeldigRijksregisterNummer()
	 If geldigeDatum AndAlso geldigNummer Then
		 DoeInsert()
	 End If
End Sub


Ook: dit is ASP.NET?
Indien ja: je hebt validation controls die kunnen helpen bij hetgeen je doet.
Er is ook een DateTimePicker

Ik weet niet waarop je Sinterklaas functies testen.
Indien  dat een geldige string voor een rijksregister nummer verwacht, moet je niet enkel testen op lengte 11, maar moet je ook zorgen dat het allemaal digits zijn.
Eventueel en kan je ook testen op maand (digits 3 en 4)  en dag (digits 5 en 6).

#5 mensje

mensje

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht 29 mei 2015 16:20

Geplaatst op 29 januari 2013 - 18:25

Bericht bekijkenBenno, op 29 januari 2013 - 12:48, zei:

Je hebt twee voorwaarden.
Die elk nog eens uitgesplitst worden in twee delen.
1. Rijksregister nummer:
1.1 Lengte = 11
1.2 Geldig (modulo 97)
2.Datum
2.1 Geldig datum formaat
2.2 Datum <= vandaag

Je kan de if's voor 1 en 2 niet nesten, en je mag de beide voorwaarden ook niet kortsluiten.
Mijn voorstel: maak 2 functies: IsGeldigeDatum en IsGeldigRijksregisterNummer.
Voer ze beiden uit en doe de insert enkel indien beiden geldig.
Visual Basic Code:
Protected Sub ButtonUitvoeren_Click(sender As Object, e As System.EventArgs) Handles ButtonUitvoeren.Click
	 Dim geldigeDatum As Boolean = IsGeldigeDatum()
	 Dim geldigNummer As Boolean = IsGeldigRijksregisterNummer()
	 If geldigeDatum AndAlso geldigNummer Then
		 DoeInsert()
	 End If
End Sub


Ook: dit is ASP.NET?
Indien ja: je hebt validation controls die kunnen helpen bij hetgeen je doet.
Er is ook een DateTimePicker

Ik weet niet waarop je Sinterklaas functies testen.
Indien  dat een geldige string voor een rijksregister nummer verwacht, moet je niet enkel testen op lengte 11, maar moet je ook zorgen dat het allemaal digits zijn.
Eventueel en kan je ook testen op maand (digits 3 en 4)  en dag (digits 5 en 6).

je hebt idd validation , maar ik vond er alleen eentje waar je maar via 1 richting kon typen( 01-04-1995 bv ) maar niet 1995-04-01 , wat eigenlijk ook juist is.

#6 mensje

mensje

    Starting Developer

  • Leden
  • 17 berichten
    Laatst bezocht 29 mei 2015 16:20

Geplaatst op 29 januari 2013 - 20:01

probleem is opgelost.
Heb net iets in mekaar gestoken met de bedoeling als je een naam kiest uit een dropdownlist , hij in een gridview de ziektes toont die de persoon al gehad heeft.
Heb dit gedaan door vergelijking op rijkregnr te gebruiken maar hij krijgt het niet gelezen.

Code:
Imports System.Data.OleDb
Imports System.Web.Configuration
Partial Class patientraadplegen
	Inherits System.Web.UI.Page
	Dim conn As New OleDbConnection((WebConfigurationManager.ConnectionStrings("Mijnverbinding").ToString))
	Dim strleden As String
	Dim command As New OleDbCommand
	Dim lezen As OleDbDataReader
	Dim strkies As String
	Dim strpatient As String
	Private Sub ledenvullen()
		strleden = "SELECT  tblpatienten.Naam FROM(tblpatienten) ORDER BY tblpatienten.Naam"
		With command
			.Connection = conn
			.CommandText = strleden
		End With
		conn.Open()
		lezen = command.ExecuteReader
		ddlpatient.Items.Add("Maak uw keuze")
		Do While lezen.Read
			ddlpatient.Items.Add(lezen.Item("Naam"))
		Loop
		conn.Close()
	End Sub

	Protected Sub ddlpatient_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlpatient.SelectedIndexChanged
	  
		strkies = ddlpatient.SelectedValue ' geeft mee wat gebruiker kiest
		Label1.Text = strkies
		strkies = "SELECT tblconsultaties.rapport,tblconsultaties.consultatiedatum FROM (tblconsultaties INNER JOIN tblpatienten ON tblconsultaties.rijksregnr = tblpatienten.rijksregnr) WHERE (tblpatienten.Naam = '" & strkies & "') GROUP BY tblconsultaties.consultatiedatum, Tblconsultaties.rapport"
	   
	   
		With command
			.Connection = conn
			.CommandText = strpatient
		End With
		conn.Open()
		lezen = command.ExecuteReader
		grvpatient.DataSource = lezen
		grvpatient.DataBind() ' dat hij erin zit
		conn.Close()
		ddlpatient.Items.Clear()
		ledenvullen()
	End Sub

	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		ledenvullen()
	End Sub
End Class







Ook met taq Solved, ASP, Controle, Datum voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)