Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Egenskap som kollar en tom datatable?

Postades av 2007-05-24 22:34:55 - Fredrik Leufkens, i forum vb.net, Tråden har 1 Kommentarer och lästs av 753 personer

Hej!

Jag börjar med lite kod.

    Public Shared Sub loggin(ByVal strAnvandarNamn As String, ByVal strLosenOrd As String, ByVal intDatabas As Integer)

        'Laddar in databasen - i första hand nu för att kontrollera så användaren är behörig
        If intDatabas = 1 Then
            'tanken med den här satsen är att man kan styra 
            ' vilken databas man avser ladda, i ett större perspektiv
            LaddaDatabas = "Provider=Microsoft.jet.oledb.4.0; Data source =BoknDB.mdb"
        End If

        'Kontrollera användaruppgifter
        Dim sqlstr As String
        sqlstr = "SELECT * FROM tblAnvandare WHERE AnvandarNamn ='" & strAnvandarNamn & _
                 "' AND LosenOrd ='" & strLosenOrd & "';"
        'ALTERNATIV: kolla först användarnamn, sedan lösenord FÖR användarnamn. Då kan man 
        'hitta FEL för när användarnamn stämmer, men inte lösen.

        Select Case checkSQLselect(sqlstr)

            Case Nothing 'Frågan kunde inte ställas
                LaddaDatabas = ""
                clsFelHantering.fel = "loggin: Fråga kunde inte ställas. :: " & sqlstr
            Case 0 'Ingen användare fanns
                LaddaDatabas = ""
                clsFelHantering.fel = "loggin: Ingen Användare fanns"
            Case 1 'En post motsvarade sqlfrågan
                'sätter propertyn enligt användaruppgifterna.
                clsFelHantering.fel = "loggin: En Användare fanns"
            Case Else 'flera poster motsvarade SQL-frågan.
                'hitta på något som skickar tillbaka den här infon
        End Select
    End Sub

    Public Shared Function OpenDataTable(ByVal sqlstr As String) As DataTable
        Dim _db As New DataTable()
        Dim dataAdapter As New OleDb.OleDbDataAdapter(sqlstr, _connstr)
        If LaddaDatabas <> "" Then
            dataAdapter.ToString()
            dataAdapter.Fill(_db)
            dataAdapter.Dispose()
            Return _db
        End If
        Return Nothing
    End Function

    Public Shared Function checkSQLselect(ByVal strSQLstring As String) As Integer
        'Den här funktionen skall kontrollera om SQL-selectsträng om det finns en rad i databasen som
        'motsvarar sökningen. Beroende på resultatet så kommer funktionen returnera en integer
        'som man kan ha och jämföra mot på andra sidan.
        Select Case checkSQLQuery(strSQLstring)
            Case 0 'misslyckades att ställa SQL-frågan helt
                Return Nothing
            Case 1 ' lyckades ställa SQL-frågan
                'kontrollerar om det finns några poster i tabellen som motsvarar frågan

                Dim resultat As New DataTable 'Tabell som innehåller eventuella sökresultatet

                Try
                    resultat = clsDBHantering.OpenDataTable(strSQLstring)
                Catch
                End Try
                Return resultat.Rows.Count '||||||||||||||||||||<1. Här händer felet. hur kontrollerar jag?
                'ALLTERNATIV: Vet ej om nedan behövs, men sparar det.
                'Select Case resultat.Rows.Count
                '    Case Nothing 'Fanns inga poster som matchade frågan
                '        Return 0 'Returnerar Ingenting, när poster saknas
                '    Case 1 'hittade EN post som motsvarar frågan
                '        Return 1 'Vill egentligen returnera radindex här.
                '        'Men väntar med det tills jag vet hur man gör
                '    Case Is > 1 'Hittade flera poster som motsvarade frågan
                '        Return 2 'två motsvarar fler än en post
                'End Select
        End Select
    End Function
    Public Shared Function checkSQLQuery(ByVal strSQLstring As String) As Integer
        Dim testQuery As Integer = 1
        'om testQuery = 1 efter Try, så skall det innebära att frågan är OK.
        Try
            OpenDataTable(strSQLstring) '||||||||||||<2. Funkar detta egentligen?
        Catch
            testQuery = 0
        End Try
        Return testQuery
    End Function

Jaha - lessen för att det blev ett ganska massivt kodstycke här, men det behövdes för att förstå sammanhanget... jag har i två kommentaret singalerat lite extra... Dessa punkter hade jag tänkt ta upp lite mer här.

Alltså.
1. Finns det någon egenskap i datatable man kan använda utan att få nullexception? varför gillar den inte att man hoppar in i instansmetoden för att kolla på en egenskap sådär (om den skulle vara null?)?

2. Händer det som jag vill skall hända här? eller Måste jag jämföra mot en variabel? om OpenDataTable(strSQLstring) inte skulle fungera... så vill jag att testQuery = 0 .


Svara

Sv: Egenskap som kollar en tom datatable?

Postades av 2007-05-24 23:41:11 - Fredrik Leufkens

jaha... jag hittade felet... som fanns i ett annat kodstycke... (LaddaDatabas-propertyn har bara en set, och returnerar ingenting...). Man får nollställa direkt på _connstr...


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
387
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies