login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Foute SQL-statement (Opgelost)

Offline rickvanhout - 02/11/2011 14:36 (laatste wijziging 02/11/2011 14:36)
Avatar van rickvanhoutLid Hallo,

Ik post dit in de verkeerde categorie maar wellicht dat iemand mij kan helpen.

Ik ben een programma in c# aan het maken en daarbij wil ik gegevens naar de database sturen, het is een access database, de verbinding is goed maar de INSERT-Statement niet.

  1. sql2 = "INSERT INTO voorraad (Kenteken,Merk,Model,Type,Opties,Kleur,Bouwjaar,Omschrijving,Schadeomschrijving,Schadekosten,Inkoopprijs,Vraagprijs,Handelsprijs,Klant_inkoop,Inkoopdatum)
  2. VALUES ('" + Convert.ToString(tb_n_kenteken.Text) + "','" + Convert.ToString(cb_n_merk.SelectedItem) + "','" + Convert.ToString(cb_n_model.SelectedItem) + "','" + Convert.ToString(tb_n_type.Text) + "','" + Convert.ToString(rtb_n_opties.Text) + "','" + Convert.ToString(tb_n_kleur.Text) + "','" + Convert.ToString(tb_n_bouwjaar.Text) + "','" + Convert.ToString(tb_n_weergave.Text) + "','" + Convert.ToString(tb_n_schade_omschrijving.Text) + "','" + Convert.ToString(tb_n_schade_kosten.Text) + "','" + Convert.ToString(tb_n_inkoop.Text) + "','" + Convert.ToString(tb_n_verkoop.Text) + "','" + Convert.ToString(tb_n_handel.Text) + "','" + Convert.ToString(tb_n_gekochtBij.Text) + "','" + Convert.ToString(dtp_n_inkoopdatum.Text) + "')";
  3.  
  4. connection.Open();
  5. oledbAdapter.InsertCommand = new OleDbCommand(sql2, connection);
  6. oledbAdapter.InsertCommand.ExecuteNonQuery();
  7. MessageBox.Show("Row(s) Inserted !! ");


Kan iemand mij hier mee helpen?
Alvast bedankt.
Rick

8 antwoorden

Gesponsorde links
Offline Abbas - 02/11/2011 14:54 (laatste wijziging 02/11/2011 14:56)
Avatar van Abbas Gouden medaille

Crew .NET
Krijg je foutmeldingen of wat precies werkt er niet? Iets meer uitleg graag! 

Hier is een tutorial die ik geschreven heb hier op Sitemasters die gerelateerd is tot jouw vraag: http://www.site...s_Database

Deze tutorial heeft als uitvoer ASP.NET maar de code zelf geldt ook voor Windows Forms. 

Ook raad ik je aan om met Exception Handling te werken en niet zomaar verbinding te maken met je database en statements uit te voeren zonder eventuele uitzonderingen en fouten op te vangen. Hierover heb ik ook een tutorial geschreven: http://www.site...n_Handling

Je topic zelf heb ik in de categorie C# geplaatst. 
Offline rickvanhout - 02/11/2011 14:59
Avatar van rickvanhout Lid deze foutmelding krijg ik: gegevenstype komen niet overeen

ja de foutafhandeling komt er nog in, maar wil eerst kijken of dit allemaal wel goed gaat werken en dan de foutafhandeling maken.

Bedankt, ik ga naar je tutorial kijken! 
Offline Ontani - 02/11/2011 15:02
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Het probleem zit hoogstwaarschijnlijk in de datum kolommen, best dat je met parameters werkt dan heb je deze miserie niet....
Offline rickvanhout - 02/11/2011 15:08
Avatar van rickvanhout Lid nee, ik heb getest door deze eruit te laten maar het maakt geen verschil 
toch bedankt 
Offline Ontani - 02/11/2011 15:14
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
het gemakkelijkste is dat je werkt met parameters dus:

  1. insert into voorraad (Kenteken,Merk,Model,Type,Opties,Kleur,Bouwjaar,Omschrijving,Schadeomschrijving,Schadekosten,Inkoopprijs,Vraagprijs,Handelsprijs,Klant_inkoop,Inkoopdatum) VALUES (@Kenteken,@Merk,@Model,@Type,@Opties,@Kleur,@Bouwjaar,@Omschrijving,@Schadeomschrijving,@Schadekosten,@Inkoopprijs,@Vraagprijs,@Handelsprijs,@Klant_inkoop,@Inkoopdatum)


en daarna:

  1. oledbAdapter.InsertCommand.Parameters.AddWithValue("@Kenteken", tb_n_kenteken.Text);
  2. ...
  3. oledbAdapter.InsertCommand.Parameters.AddWithValue("@Inkoopdatum", cDate(dtp_n_inkoopdatum.Text));


Bedankt door: Abbas
Offline rickvanhout - 02/11/2011 15:40 (laatste wijziging 02/11/2011 16:02)
Avatar van rickvanhout Lid
Ontani schreef:
het gemakkelijkste is dat je werkt met parameters dus:

[..code..]

en daarna:

[..code..]


Ik ga het proberen, alvast bedankt!
Waar staat die cDate voor?

groet

EDIT:
DANKJE, het werkt!
Offline larssy1 - 02/11/2011 15:42 (laatste wijziging 02/11/2011 15:48)
Avatar van larssy1 MySQL beginner Ik weet niet wat je met deze applicatie van plan bent, maar omdat je hier met een database zit te werken, denk ook eens aan de veiligheid van je programma.

ssl connector: http://forums.m...msg-114719

Voeg hiernaast een anti-reflector in je code. Je .exe files zijn gemakkelijk te decompilen waar alsnog je login naam en wachtwoorden te zien zijn.

---
Citaat:
Ik ga het proberen, alvast bedankt!
Waar staat die cDate voor?

groet

DateTime parser, je zou ook evnetueel een DateTime.tryParse gebruiken of indien het datetime formaat dat je wilt bekent is, DateTime.ParseExact(myDateValue, "dd/MM/yy", null);

meer over CDate:
http://msdn.microsoft.com/en-us/library/2dt118h2(v=vs.85).aspx
Offline rickvanhout - 02/11/2011 15:49 (laatste wijziging 02/11/2011 15:53)
Avatar van rickvanhout Lid
larssy1 schreef:
Ik weet niet wat je met deze applicatie van plan bent, maar omdat je hier met een database zit te werken, denk ook eens aan de veiligheid van je programma.

ssl connector: http://forums.m...msg-114719

Voeg hiernaast een anti-reflector in je code. Je .exe files zijn gemakkelijk te decompilen waar alsnog je login naam en wachtwoorden te zien zijn.

---
[..quote..]
DateTime parser, je zou ook evnetueel een DateTime.tryParse gebruiken of indien het datetime formaat dat je wilt bekent is, DateTime.ParseExact(myDateValue, "dd/MM/yy", null);

meer over CDate:
http://msdn.microsoft.com/en-us/library/2dt118h2(v=vs.85).aspx


er staan geen wachtwoorden etc in de database, die worden ook niet gebruikt.
Ook niet voor de database connectie.
Het programma is voor de werkzaamheden in het bedrijf wat makkelijker (en overzichtelijker) te laten verlopen.
Bedankt voor de info over de datum.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.195s