[VB.NET] Checken of table bestaat ?

Pagina: 1
Acties:

  • Mephix
  • Registratie: Augustus 2001
  • Laatst online: 25-11-2025
Ik heb een settings form, waarin de gebruiker zijn SQL server gegevens in kan stellen..

Beetje zoals je dat ziet op het moment dat je een nieuwe SQL verbinding opbouwd bij bijvoorbeeld een SqlConnection.

Nu voert de gebruiker de servernaam in, het type authenticatie (windows of user/pass) en de database naam.

Tot zover kan ik controleren of de ingevoerd gegevens juist zijn, door simpel een verbinding te openen naar deze database. Met een try en catch as exeption kun je dan vrij eenvoudig controleren of het gelukt is.

Nu wil ik ook nog controleren of de tabel die ingevoerd wordt bestaat. Hoe kan ik dat op een zo simpel mogelijke manier doen? Ik hoef uiteindelijk alleen maar een boolean terug te krijgen of de tabel bestaat. De verbinding is dan dus al gecontroleerd.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mephix
  • Registratie: Augustus 2001
  • Laatst online: 25-11-2025
hmm.. begint er op te lijken...

Ik krijg alleen een record terug met de tabel gegevens, of een leeg record als de tabel niet bestaat...

this "and OBJECTPROPERTY(id, N'IsUserTable') = 1" can be "and type = N'U'"

Hoe moet ik deze regel zien ?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Je hebt oa. system tables en je hebt usertables. Een normale user heeft in principe dus niets met de systemtables te maken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mephix
  • Registratie: Augustus 2001
  • Laatst online: 25-11-2025
Nee, dat begrijp ik.. en die heb ik ook inderdaad niet nodig.

Maar nu heb ik deze query.. krijg ik 1 record terug met tabel eigenschappen als het de tabel bestaat.. en geen record als de tabel niet bestaat... Ik kan hier nu niet een soort if - then constructie omheen bouwen.. als ik immers geen waarde terugkrijg (de tabel bestaat niet) krijg ik waarschijnlijk problemen met het controleren van die waarde.

[ Voor 3% gewijzigd door Mephix op 03-03-2003 12:47 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Mephix schreef op 03 maart 2003 @ 12:47:
Nee, dat begrijp ik.. en die heb ik ook inderdaad niet nodig.

Maar nu heb ik deze query.. krijg ik 1 record terug met tabel eigenschappen als het de tabel bestaat.. en geen record als de tabel niet bestaat... Ik kan hier nu niet een soort if - then constructie omheen bouwen.. als ik immers geen waarde terugkrijg (de tabel bestaat niet) krijg ik waarschijnlijk problemen met het controleren van die waarde.
Dan kan je hier een functie omheen schrijven. If recordcount (of iets wat hier op lijkt is 0) then: return false, else, return true)

Visual Basic .NET:
1
2
3
4
5
6
7
8
Protected function CheckExistsTable(tablename as string) as Boolean
...
If recordset.Count = 0 Then
    return false
Else
    return true
End if
End function

[ Voor 13% gewijzigd door gorgi_19 op 03-03-2003 12:50 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 29-03 18:11
Je gaat toch ook geen queries stellen aan tabellen die niet bestaan. En zowel dan geeft de server toch een specifieke foutcode terug.

Heb even voor je gezocht:

http://www.mysql.com/doc/en/Cannot_find_table.html
Table 'xxx' doesn't exist Error
If you get the error Table 'xxx' doesn't exist or Can't find file: 'xxx' (errno: 2), this means that no table exists in the current database with the name xxx.

En misschien dat je hier iets mee kan:

SHOW TABLE STATUS (new in Version 3.23) works likes SHOW STATUS, but provides a lot of information about each table. You can also get this list using the mysqlshow --status db_name command. The following columns are returned:

[ Voor 68% gewijzigd door Mickman op 03-03-2003 14:31 . Reden: ter informatie ]

Pagina: 1