Volledige versie bekijken : SQL code - WHERE <field> 'niet exact hetzelfde' <blabla>



osa
14 January 2010, 00:45
Hey iedereen

Ik ben momenteel bezig met een programma te schrijven in VB.NET (eindwerk softwareontwikkeling), en tot nu toe werkt het heel goed. Toch heb ik een vraagje:

Elke keer als ik informatie wil laden uit mijn database (Access-database) doe ik dit met SQL.

Momenteel gebruik ik deze code:

SELECT * FROM tabelnaam WHERE veldnaam LIKE <ZoekWaarde>Maar hiervoor moet de <ZoekWaarde> EXACT hetzelfde zijn de waarde in de database.
Ik wil echter dat als ik een achternaam zoek op 'Pe' dat ik alle achternamen krijg in mijn database die met 'Pe' beginnen.

De (relatieve) code in mijn programma is:


Public ZoekCriterium As String
Public ZoekWaarde As String


Dim comm As New OleDb.OleDbCommand

comm.CommandText = "SELECT * FROM tblGebruikers WHERE " & ZoekCriterium & " LIKE '" & Zoekwaarde & "'"
Ik heb al comm.CommandText = "SELECT * FROM tblGebruikers WHERE " & ZoekCriterium & " LIKE '" & Zoekwaarde & "*'" geprobeerd, want bij access werk het als je zoekt op WHERE <blabla> LIKE "V*", maar bij VB.NET blijkbaar niet...

Alvast bedankt! :D

ultddave
14 January 2010, 00:59
Specifiek voor dat 'Pe' voorbeeld:

SELECT * FROM tabelnaam WHERE veldnaam LIKE 'Pe%'

;)

Het % teken is een wildcard in SQL. Dat vervangt 0 of meerdere karakters.

Bij google en in windows etc, wordt inderdaad de asterisk (*) gebruikt als wildcard, bij SQL is dat meestal het procent teken. Ik heb het wel niet in VB.NET getest.
EDIT: http://www.w3schools.com/SQL/sql_wildcards.asp

Mvg,
dave

osa
14 January 2010, 01:06
Jah! Nu werkt het! Hartelijk bedankt ultddave!!

rommeke
20 February 2010, 21:18
persoonlijk vindt ik dit een zeer goede reeks van tut ivm met basic SQL:
http://www.codegearguru.com/video/010/SQL_Part_1.html
http://www.codegearguru.com/video/011/SQL_Part_2.html
http://codegearguru.com/video/021/sql3.html
http://codegearguru.com/video/022/sql4.html

verder kan je ook nog _ (underscore gebruiken) voor een willekeurig karakter

btw weet er iemand waar ik testdatabase kan downloaden voor wat mee te prutsen?

ultddave
20 February 2010, 23:00
Hartelijk bedankt ultddave!!
Graag gedaan. ;)


btw weet er iemand waar ik testdatabase kan downloaden voor wat mee te prutsen?

Ik gebruik WAMP server. Dan kan je dus je website met PHP code en MySQL database lokaal testen op je PC.

WAMPserver is gratis, en beschikt over PHPmyAdmin voor de MySQL database te beheren, ofwel via zo een MySQL console waarin je dan commando's moet typen. ;)

http://www.wampserver.com/en/download.php

Specs:
Apache 2.2.11
PHP 5.3.0
MySQL 5.1.36
Phpmyadmin

Mvg,
Dave

rommeke
21 February 2010, 09:28
Dat wist ik al. Ik had het eigenlijk over het concept van een sql database dat gescript is dat ik dan kan implementeren om daar wat querry's op uit te testen

Butterflyice
21 February 2010, 10:00
Wat voor soort database zou je willen hebben ?
aantal tabellen en wat moet er per tabel in staan?
Je kan bv een open soucre pakket instaleren en daar de database van gebruiken om te testen.
Je kan ook zelf een database maken.

rommeke
21 February 2010, 10:04
meh gewoon een kleine database bv een fake qua klanten zoiets waar op ik de bovenstaande walktrough codes die ik hierboven heb gepost eens kan uitproberen. Om wat ik ken in theorie een in praktijk te brengen en zo eventueel nog iets bij te leren uit deze ervaring

Butterflyice
21 February 2010, 10:38
Zo iets ?
SQL code


--
-- Database: `testproject`
--
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `customer`
--
CREATE TABLE IF NOT EXISTS `customer` (
`cum_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cum_name` varchar(255) DEFAULT NULL,
`cum_adress` varchar(255) DEFAULT NULL,
`cum_zipcode` int(11) DEFAULT NULL,
`cum_county` varchar(60) DEFAULT NULL,
`cum_state` varchar(60) DEFAULT NULL,
`cum_nr` int(11) DEFAULT NULL,
`cum_phone` varchar(20) DEFAULT NULL,
`cum_adress2` varchar(255) DEFAULT NULL,
`cum_createdate` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`cum_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Gegevens worden uitgevoerd voor tabel `customer`
--
INSERT INTO `customer` (`cum_id`, `cum_name`, `cum_adress`, `cum_zipcode`, `cum_county`, `cum_state`, `cum_nr`, `cum_phone`, `cum_adress2`, `cum_createdate`) VALUES
(1, 'Jansen', 'Overlaan 12', 1222, 'Denmark', 'nergens', 1222, '232355454', 'Overlaan 56', '2010-02-21 09:35:59'),
(2, 'Klaasen', 'binnenweg 45', 4565, 'Timboetoe', 'bones', 345, '324534543654', 'nvt', '2010-02-21 09:35:59');

Butterflyice
22 February 2010, 13:42
@ Rommeke niet goed de test database ? graag een reactie.

rommeke
22 February 2010, 15:32
Heb wat complicaties gehad me me GUI om sql in te runnen zal het een van deze dagen eens uittesten beetjes drukjes :p

rommeke
22 February 2010, 16:24
edit: krijg null waarden in de tabel :wtf:

Butterflyice
22 February 2010, 17:53
Wat probeer je uit te voeren?
sql query hier posten dan aub.

ps je kan beter een nieuwe topic openen inplaats dat we in deze verder gaan.
De crew kan deze posten met je nieuwe post ook merge dus dat is geen probleem.

rommeke
26 February 2010, 22:00
ondertussen het probleem gevonden had de querry nie geheel geslecteerd zodat het progje niet wist wat hij moest uitvoeren

Martijnke
27 February 2010, 12:30
normaal vind je in je office directory de fameuzen noordenwind mdb
dit is een zeer goede db om mee te beginnen
bij mij (office XP UK) staat die hier :

C:\Program Files\Microsoft Office\OFFICE11\SAMPLES