login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Foutje bij toevoegen db (Opgelost)

Offline rredspike1 - 01/11/2008 01:03 (laatste wijziging 01/11/2008 01:06)
Avatar van rredspike1Lid
  1. Private Sub btnNieuweKlantToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNieuweKlantToevoegen.Click
  2. Dim oConString2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MSP.mdb;"
  3. Dim oCon2 As New OleDb.OleDbConnection(oConString2)
  4.  
  5. Dim sqlBedrijfsnaam_bestaat As String = "SELECT COUNT(*) FROM Klanten WHERE Bedrijfsnaam = '" & Me.txtBedrijfsnaam_Klanten.Text & "'"
  6. Dim oCmdBedrijfsnaam_bestaat As New OleDbCommand(sqlBedrijfsnaam_bestaat, oCon2)
  7.  
  8. Try
  9. oCon2.Open()
  10. Dim oReaderBedrijfsnaamBestaat As OleDbDataReader = oCmdBedrijfsnaam_bestaat.ExecuteReader
  11. oReaderBedrijfsnaamBestaat.Read()
  12. If (Me.txtBedrijfsnaam_Klanten.Text.Equals("")) Then
  13. MessageBox.Show("Vul een bedrijfsnaam in!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  14. ElseIf (oReaderBedrijfsnaamBestaat(0) > 0) Then
  15. MessageBox.Show("Bedrijfsnaam bestaat al!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  16. Else
  17. 'insert into database
  18. Dim sSQL As String = "INSERT INTO Klanten(Bedrijfsnaam) VALUES('" & Me.txtBedrijfsnaam_Klanten.Text & ")"
  19. Dim oCom As New OleDbCommand(sSQL, oCon2)
  20.  
  21. Try
  22. oCom.ExecuteNonQuery()
  23. Catch ex As Exception
  24. MsgBox(ex.Message)
  25. Finally
  26. oCom.Dispose()
  27. oCon2.Dispose()
  28. oCon2.Close()
  29. End Try
  30. End If
  31. oCmdBedrijfsnaam_bestaat.Dispose()
  32. Catch ex As Exception
  33. MessageBox.Show(ex.ToString)
  34. Finally
  35. oCon2.Close()
  36. oCon2.Dispose()
  37. End Try
  38. End Sub


Krijg een foutmelding van:
Syntaxisfout in tekenreeks. In query-expressie 'test).

Sorry ik zie het al! Was een ' vergeten!
Alleen volgende vraag... hoe haal ik de Autonummering leeg?
Dat het weer op nr 1 begint

7 antwoorden

Gesponsorde links
Offline Abbas - 01/11/2008 02:20 (laatste wijziging 01/11/2008 02:20)
Avatar van Abbas Gouden medaille

Crew .NET
Beetje GOOGLE: Reset Autonummering MSSQL kan nooit kwaad! 
Offline rredspike1 - 01/11/2008 02:35 (laatste wijziging 01/11/2008 02:37)
Avatar van rredspike1 Lid Stomme code geeft geen foutmelding weer...waar kan dat aan liggen?

  1. Private Sub btnNieuweKlantToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNieuweKlantToevoegen.Click
  2. Dim oConString2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MSP.mdb;"
  3. Dim oCon2 As New OleDb.OleDbConnection(oConString2)
  4.  
  5. Dim sqlBedrijfsnaam_Contactpersoon_bestaat As String = "SELECT COUNT(*) FROM Klanten WHERE Bedrijfsnaam = '" & Me.txtBedrijfsnaam_Klanten.Text & "'"
  6. Dim oCmdBedrijfsnaam_Contactpersoon_bestaat, oCmdContactpersoon_bestaat As New OleDbCommand(sqlBedrijfsnaam_Contactpersoon_bestaat, oCon2)
  7.  
  8. Try
  9. oCon2.Open()
  10. Dim oReaderBedrijfsnaam_Contactpersoon_Bestaat As OleDbDataReader = oCmdBedrijfsnaam_Contactpersoon_bestaat.ExecuteReader
  11. oReaderBedrijfsnaam_Contactpersoon_Bestaat.Read()
  12. If String.IsNullOrEmpty(txtBedrijfsnaam_Klanten.Text) Then
  13. strErrors &= "- Er is geen bedrijfsnaam ingevuld!" & Environment.NewLine
  14. xErrors = xErrors + 1
  15. ElseIf (oReaderBedrijfsnaam_Contactpersoon_Bestaat(0) > 0) Then
  16. strErrors &= "- Bedrijfsnaam bestaat al!" & Environment.NewLine
  17. xErrors = xErrors + 1
  18. ElseIf String.IsNullOrEmpty(txtContactpersoon_Klanten.Text) Then
  19. strErrors &= "- Er is geen contactpersoon ingevuld!" & Environment.NewLine
  20. xErrors = xErrors + 1
  21. ElseIf (oReaderBedrijfsnaam_Contactpersoon_Bestaat(0) > 0) Then
  22. strErrors &= "- Contactpersoon bestaat al!" & Environment.NewLine
  23. xErrors = xErrors + 1
  24. ElseIf String.IsNullOrEmpty(txtAdres_Klanten.Text) Then
  25. strErrors &= "- Er is geen adres ingevuld!" & Environment.NewLine
  26. xErrors = xErrors + 1
  27. ElseIf String.IsNullOrEmpty(txtPostcode_Klanten.Text) Then
  28. strErrors &= "- Er is geen postcode ingevuld!" & Environment.NewLine
  29. xErrors = xErrors + 1
  30. ElseIf String.IsNullOrEmpty(txtPlaats_Klanten.Text) Then
  31. strErrors &= "- Er is geen plaats ingevuld!" & Environment.NewLine
  32. xErrors = xErrors + 1
  33. ElseIf String.IsNullOrEmpty(txtTelefoonnummer_Klanten.Text) Then
  34. strErrors &= "- Er is geen telefoonnummer ingevuld!" & Environment.NewLine
  35. xErrors = xErrors + 1
  36. ElseIf String.IsNullOrEmpty(txtEmailadres_Klanten.Text) Then
  37. strErrors &= "- Er is geen emailadres ingevuld!" & Environment.NewLine
  38. xErrors = xErrors + 1
  39.  
  40. 'Alle errors bij elkaar optellen en weergeven'
  41. If xErrors > 0 Then
  42. MessageBox.Show(strErrors, "Fout", MessageBoxButtons.OK, MessageBoxIcon.Warning)
  43. If Windows.Forms.DialogResult.OK Then
  44. xErrors = 0
  45. End If
  46. End If
  47.  
  48. Else
  49. 'insert into database
  50. Dim sSQL As String = "INSERT INTO Klanten(Bedrijfsnaam, Contactpersoon, Adres, Postcode, Plaats, Telefoonnummer, Faxnummer, Emailadres) VALUES('" & Me.txtBedrijfsnaam_Klanten.Text & "', '" & Me.txtContactpersoon_Klanten.Text & "', '" & Me.txtAdres_Klanten.Text & "', '" & Me.txtPostcode_Klanten.Text & "', '" & Me.txtPlaats_Klanten.Text & "', '" & Me.txtTelefoonnummer_Klanten.Text & "', '" & Me.txtFaxnummer_Klanten.Text & "', '" & Me.txtEmailadres_Klanten.Text & "')"
  51. Dim oCom As New OleDbCommand(sSQL, oCon2)
  52.  
  53. Try
  54. oCom.ExecuteNonQuery()
  55. Catch ex As Exception
  56. MsgBox(ex.Message)
  57. Finally
  58. oCom.Dispose()
  59. oCon2.Dispose()
  60. oCon2.Close()
  61. End Try
  62. End If
  63.  
  64. oCmdBedrijfsnaam_Contactpersoon_bestaat.Dispose()
  65. Catch ex As Exception
  66. MessageBox.Show(ex.ToString)
  67. Finally
  68. oCon2.Close()
  69. oCon2.Dispose()
  70. End Try
  71. End Sub


Citaat:
Beetje GOOGLE: Reset Autonummering MSSQL kan nooit kwaad!

Bedankt!
Offline Abbas - 01/11/2008 02:43
Avatar van Abbas Gouden medaille

Crew .NET
Eerst ben je bezig over die query-fout, die je zelf al hebt opgelost. Dan begin je over het resetten van de auto-nummering in een DB, en nu begin je weer over iets... Wat is de bedoeling hiervan?

Wat gaat er fout of werkt niet in die laatste stuk code? Ook steekt die niet logisch in elkaar. Je moet eerst controle doen op alle invoervelden en daarna kan je gaan controleren of het bedrijf al bestaat:
- Controle op invoer, bij fouten: melding weergeven
- Juiste invoer: controleren of bedrijfsnaam bestaat, als die bestaat: melding weergeven
- Bestaat nog niet: alles invoegen in de DB

Succes!
Offline rredspike1 - 01/11/2008 02:46
Avatar van rredspike1 Lid Ja sorry... moet ik hier dan 3 verschillende soorten topics voor gaan openen?
Offline Abbas - 01/11/2008 02:48
Avatar van Abbas Gouden medaille

Crew .NET
Volledig correct gezien wel, want het ene topic is het andere niet, maar swat, doet er nu dan niet toe. Heb je de rest van m'n reactie dan ook gelezen? :D
Offline rredspike1 - 01/11/2008 02:54 (laatste wijziging 01/11/2008 02:55)
Avatar van rredspike1 Lid Ja alleen ik snap je reactie niet...helemaal, is mn code dan verkeerd?
Bedoel opbouw kan toch wel?

Eerst If controle als txtbox leeg is = fout erbij
ElseIf controle als 'naam' bestaat = fout erbij.
etc..

Of bedoel je je pb?

Groeten,
rredspike
Offline Abbas - 01/11/2008 03:18
Avatar van Abbas Gouden medaille

Crew .NET
Dat bedoel ik niet, die if/elseif is wel juist. Maar met je vorige code ga je of nu alle nodige velden zijn ingevuld of niet, communiceren met de DB terwijl dit helemaal niet nodig is. Pas als alle invoer correct is kan je gaan communiceren met de DB.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.197s