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


problem med oledb

Postades av 2005-08-08 16:29:33 - Anders Hydén, i forum vb.net, Tråden har 14 Kommentarer och lästs av 635 personer

När jag kör mitt program så får jag följande fel:
"An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll"

Den klagar på följande rad:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        DsPoker1.Clear()
        OleDbDataAdapter1.Fill(DsPoker1) ' <-- här klagar den...
    End Sub


Jag har en oleDbDataAdapter (OleDbDataAdapter1) med standard settings...
SELECT strPlayers FROM holecards WHERE (cards = 'strSql1 strColor')


Sen har jag ett DataSet (DsPoker1) med följande settings:
DataSetName: DsPoker

Jag har en label som jag vill fylla med resultatet med settings:
DataBindnings - Text: DsPoker1 - Table.strPlayers


Vad kan det vara som är fel?
Edit: kan det vara sql-frågan som bråkar??


Svara

Sv: problem med oledb

Postades av 2005-08-08 18:00:14 - Peter Ilis

Hur ser select-frågan ut i adapterns commando-objekt?

/Peter


Svara

Sv:problem med oledb

Postades av 2005-08-08 19:20:44 - Anders Hydén

SELECT strPlayers FROM holecards WHERE (cards = 'strSql1 strColor')


Svara

Sv: problem med oledb

Postades av 2005-08-08 19:46:56 - Peter Ilis

Om du gör en breakpoint precis innan update och tittar på select-satsen. Är det den du skrev ovan då?

Har du testat att köra den direkt mot databasen (Access?)?

Prova även att köra följande kod:<code>dim ds as new dataset
OleDbDataAdapter1.Fill(ds)</code>


Svara

Sv:problem med oledb

Postades av 2005-08-08 20:01:43 - Anders Hydén

Jag får inte ihop frågan i access heller.. :(
Fattar nog inte riktigt hur man gör frågor i access tror jag...

ett exempel som rimligtvis borde generera "38.8" :

select players7 from holecards where cards = 'aao'

Men om jag skriver in exakt så i access så får jag upp en dialogruta där jag ska skriva in något...?


Svara

Sv: problem med oledb

Postades av 2005-08-08 20:13:36 - Peter Ilis

Kanska kan hjälpa dig med frågan. Hur ser tabellen holecards ut (vilka kolumner och typer) och vad vill du göra?


Svara

Sv:problem med oledb

Postades av 2005-08-08 20:54:25 - Anders Hydén

Allt är av typen "text".
-------------------------------------------------
bild: http://www.hyden.nu/poker_tables.gif |
-------------------------------------------------
Vad jag vill göra är att med hjälp av strSql1, strPlayers och strColor välja ut rätt fält.

i min fantasi ser sqlsträngen ut så här:
select strPlayers from holecards where cards = strSql1 & strColor

ex. :
strPlayers = players3
strSql1 = aa
strColor = o
genererar:
select players3 from holecards where cards = aao
vilket i sin tur bör hämta ut "63.9" från databasen...

förstår du hur jag menar?
Om det spelar någon roll så är det vb.net jag jobbar i... och databasen är en access 2003.

/Anders


Svara

Sv: problem med oledb

Postades av 2005-08-08 21:09:57 - Peter Ilis

Din sql-sträng bör se ut som följande:

Om du vill hämta in siffran till ditt dataset som ska ha typen string (om typen på kolumnen 3players) är text/string.

SELECT 3players as [PlayerNumeric] from holecards where cards='aao'
eller
SELECT 2players as [PlayerNumeric] from holecards where cards='aao'

"as [PlayerNumeric]" betyder att kolumnen får ett alias vilket gör att den alltid kommer returneras med detta namn.

Eller kanske om du vill hämta hela raden och sedan hantera den i vb:
<code>SELECT * from holecards where cards='aao'</code>

Det du kanske borde göra är att strukturera din databas så att du har flera tabeller med relationer mellan dem (en playertabell, en färgtabell, en korttabell etc.) och även typa den korrekt (decimalt istället för text för player-kolumnerna t.ex.). Detta för att få en vettigare struktur.

Mvh
Peter


Svara

Sv:problem med oledb

Postades av 2005-08-08 22:50:08 - Anders Hydén

Hmm, är inte riktigt med på hur du menar, pratar du access nu eller sqlfråga i mitt program?
hur blir min sqlfråga i programmet?

strSql1 = "SELECT "& strPlayers & " FROM holecards WHERE cards = " & strSql & strColor

Är det så du menar att jag ska skriva i programmet?


Svara

Sv: problem med oledb

Postades av 2005-08-08 23:01:45 - Peter Ilis

Jo precis så skulle den kunna se ut, eller snarare

strSql1 = "select " & strPlayers & " FROM holecards where cards = <b>'</b>" & strSql & strColor & "<b>'</b>"

Alltså med '-tecken runt where-strängen.

Såg att du i texten ovan skrev select players7. I din tabell heter den 7players. Det kan inte vara det som är fel?

Angående det om att dela upp det i flera tabeller så kan du prova att söka på t.ex. rellationsdatabaser i google eller söka i hjälpen i Access. Finns mycket att läsa och lära. :)

Mvh
Peter


Svara

Sv:problem med oledb

Postades av 2005-08-08 23:29:56 - Anders Hydén

Fnys... när jag döpte om fälten till "players1" istf "1players" så funkade det :/
Nästan...
Jag får iaf inget fel längre!
Men å andra sidan så får jag inte ut någon text i min textbox, där svaret ifrån sql-frågan borde komma :(

Mitt dataset heter "DsPoker2" och databinding - text på textboxen är:
DsPoker2 - Table.Expr1

Klickfuntionen på knappen ser ut så här:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
             OleDbDataAdapter1.SelectCommand.CommandText = strSql1

            DsPoker2.Clear()
            OleDbDataAdapter1.Fill(DsPoker2)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub


Men inget skriv ut i textboxen??
Eftersom jag inte får något fel längre så antar jag att sql-strängen är ok, men varför skrivs inget ut i textboxen?

Förövrigt så måste jag verkligen tacka för din hjälp!


Svara

Sv: problem med oledb

Postades av 2005-08-09 10:16:07 - Peter Ilis

Inga problem alls. :)
Bindningen (DsPoker2 - Table.Expr1) är det fältnamn i dataset-tabellen som du vill använda. När du skriver den selectfrågan du skrivit kommer datasetets fältnamn bli DsPoker2 - Holecards.1players. Du måste alltså binda till det fält som du hämta alt. använda alias som jag skrev lite längre upp.

Mvh
Peter


Svara

Sv:problem med oledb

Postades av 2005-08-09 11:49:58 - Anders Hydén

Hmm, nu förstod jag ingenting :)
Hur menar du att jag ska skriva?

Ska det stå DsPoker2 - Holecards. & strPlayers alltså?
VS tilllåter mig inte att skriva så...


Svara

Sv: problem med oledb

Postades av 2005-08-09 16:13:45 - Peter Ilis

Nej, det är därför du ska använda alias i din select-fråga.

SELECT 1players as [playerNumber] from xxx where zz=yy
returnerar en tabell med följande utseende:
playerNumber
---------------
xxx

SELECT 2players as [playerNumber] from xxx where zz=yy
returnerar en tabell med följande utseende:
playerNumber
---------------
xxx

Detta gör att det bundna fältet i ditt formulär skall vara 'playerNumber'. Alltså oavsett vilken kolumn som hämtas från databasen. Du får dock inte uppdateringsmöjlighet då och då försvinner ju nyttan med bindningar.

Jag tror det första du borde göra är att designa om databasen. Splitta upp din flata tabell till flera mindre med relationer mellan sig.

Med vänliga hälsningar
Peter Ilis / som för övrigt inte längre använder bindningar då han anser att det är onödigt krångligt. :D


Svara

Sv:problem med oledb

Postades av 2005-08-10 04:21:59 - Anders Hydén

Jag fick det tillslut att funka :)

Sqlfrågan jag använder är:

strSql = "SELECT " & strPlayers & " FROM holecards WHERE cards = '" & strCard & "'"


Och klick-egenskapen för att få det att funka ser ut så här:

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If strCard1Value = "" Or strCard2Value = "" Or strSuite = "" Or strPlayers = "" Then
            MsgBox("Please make all choises...")
        Else
            Try

                OleDbDataAdapter1.SelectCommand.CommandText = strSql

                DataSet1.Clear()
                OleDbDataAdapter1.Fill(DataSet1)
                lblResult.DataBindings.Clear()
                lblResult.DataBindings.Add(New Binding("Text", DataSet1, "holecards." & strPlayers))

            Catch ex As Exception

                MsgBox(ex.ToString & ", " & ex.Message)

            End Try
        End If
    End Sub


Jag har ingen aning om vad felet var innan, men jag gjorde om all kod (fick det att bli lite snyggare kod oxå) och sen funkade det :D

Tack hur som helst för ditt tålamod :)


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 724
27 958
271 751
353
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