Avatar billede joemoz Nybegynder
05. november 2007 - 23:48 Der er 15 kommentarer og
1 løsning

Kontakt til dataset giver ingen synlige resultater

Jeg har et projekt der kobler op til en webservice og uploader et dataset. En vellykket kontakt til webservicen skulle returnere et resultat-datasæt, men bortset fra det har jeg ikke nogen adgang til at redigere i webservicen. Programmet køres uden fejlmeddelelser, men jeg får ikke rigtig noget resultat af det og dataene bliver ikke uploaded.

Hvad mangler jeg mon?

Koden:

Imports WindowsApplication1.xx.www
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim myDataSet As System.Data.DataSet = minfunktion()
        Me.Visible = False
        Dim myservice As New XX_ListFunctions()
        Dim temp = myservice.XX_MasseUpdate("wsXX-nyheder", "kode", myDataSet)
    End Sub

    Public Function minfunktion() As System.Data.DataSet
        Dim csvPath As String = "c:\testkommasep.txt"

        Dim myDataSet As System.Data.DataSet = New System.Data.DataSet()

        Dim myDataTable As System.Data.DataTable = New System.Data.DataTable("XXXTabel")

        Dim myDataColumn As System.Data.DataColumn

        ' 1. kolonne
        myDataColumn = New System.Data.DataColumn("KOLONNE1")
        myDataColumn.DataType = System.Type.GetType("System.String")
        myDataTable.Columns.Add(myDataColumn)

        ' 2. kolonne
        myDataColumn = New System.Data.DataColumn("KOLONNE2")
        myDataColumn.DataType = System.Type.GetType("System.String")
        myDataTable.Columns.Add(myDataColumn)

        Using sr As System.IO.StreamReader = New System.IO.StreamReader(csvPath)
            Dim line As String

            Do
                line = sr.ReadLine()
                Dim lineArr As String() = line.Split(",")

                Dim myDataRow As System.Data.DataRow = myDataTable.NewRow()
                myDataRow("KOLONNE1") = lineArr(0)
                myDataRow("KOLONNE2") = lineArr(1)
                myDataTable.Rows.Add(myDataRow)
            Loop Until Not line Is Nothing

        End Using
        myDataSet.Tables.Add(myDataTable)
        dinfunktion = myDataSet
    End Function
End Class
Avatar billede neoman Novice
06. november 2007 - 00:15 #1
Alt ser da fint ud, på nær dit loop-stop kriterium:   

Loop Until Not line Is Nothing

Så vidt jeg kan regne ud, så  må den da stoppe efter første linje... og hvis man fjerner "not", så vil den da sikkert gå ned med et brag på sidste linje:)
Avatar billede neoman Novice
06. november 2007 - 00:34 #2
i sådan et tilfælde så kan du bruge           

While (Not stream.EndOfStream)
                ' read the line and split it using ',' as the delimiter
                Dim myLine As String = stream.ReadLine()
'bla bla

End While

eller, alternativt, bruge OleDb-tingesten som kan læse en csv-fil direkte

        Dim myCon As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Websites\Roster\Uploads\;Extended Properties='text;HDR=Yes;FMT=Delimited'")
Dim myTable As New DataTable       
Dim myCommand As New OleDb.OleDbCommand("SELECT * FROM " + "myData.csv", myCon)
        Dim myAdapter As New OleDb.OleDbDataAdapter(myCommand)
        myCon.Open()
        myAdapter.Fill(MyTable)
        myCon.Close()
Avatar billede arne_v Ekspert
06. november 2007 - 04:44 #3
"men jeg får ikke rigtig noget resultat af det"

hvad får du tilbage ?
Avatar billede nielle Nybegynder
06. november 2007 - 08:29 #4
Det er vel lige så meget et spørgemål om hvad der sker i kaldet til:

myservice.XX_MasseUpdate(...)

?
Avatar billede joemoz Nybegynder
06. november 2007 - 08:42 #5
@neoman Tak, men jeg får at vide at "Name 'stream' is not declared"

@arne+nielle: Når jeg debugger sker der grundlæggende ikke andet end at min form kommer op uden yderligere meddelelser.
Avatar billede neoman Novice
06. november 2007 - 11:11 #6
så kunne du jo overveje at deklarere "stream", eller omdøbe den til din "sr"
Avatar billede nielle Nybegynder
06. november 2007 - 12:47 #7
Der er nu heller ikke noget i koden, som skulle gøre sig synlige udslag; du opbygger dit dataset og sender det vidre til myservice.XX_MasseUpdate(...) og det er så dét. Med mindre at XX_MasseUpdate() i sig selv skulle gøre noget synligt? Det er svært at bedømme på navnet alene, men det lyder mest som om at denne opdatere noget i en database et eller andet sted. Har du kigget i denne database for at se om der er sket noget i den?

Faktisk burde ikke en gang din form være synlig? Du sltter da i hvert fald dens Cisible property til False.
Avatar billede joemoz Nybegynder
06. november 2007 - 13:40 #8
Webservicen skulle returnere et datasæt - hvor kan jeg se det?

I øvrigt er det underligt med den form - jeg forstår ikke hvorfor den bliver vist. Nogen idéer?
Avatar billede nielle Nybegynder
06. november 2007 - 14:12 #9
Det kan godt være at den returnere et dataset, men du har ingen kode hvor du viser indholdet af dette. Det skal du f.eks. gøre via et GridView.
Avatar billede nielle Nybegynder
12. november 2007 - 19:02 #10
Er du kommet vidre med denne her?
Avatar billede joemoz Nybegynder
15. november 2007 - 15:50 #11
Tak for inputtene, men tja - det virker nu stadig ikke rigtig. Når jeg indsætter et break point kan jeg se at der under temp står at "cast from string "XXX" to type 'Double' is not valid. Er det fordi webservicen forventer en anden type data, og hvordan kan jeg i så fald lave den om?
Avatar billede nielle Nybegynder
16. november 2007 - 20:39 #12
Hvad er der for noget kode du får den fejlbesked i?

... beskeden lyder som om at du sender/modtager noget som er en streng hvro at resten af programmet/webservicen forventer en double.
Avatar billede joemoz Nybegynder
16. november 2007 - 21:13 #13
Jep, jeg havde lavet en kodefejl (datasættet blev genereret med linjer der gik igen og datatypen blev derfor forkert) og problemet blev løst lige efter min forrige post. Smid gerne et svar for den gode indsats. (Nielle og Neoman, kan jeg give jer begge point?)
Avatar billede nielle Nybegynder
19. november 2007 - 17:28 #14
Sagtens, så skal di bare lige vente vente på at vi begge to har lagt et svar.

... svar :^)
Avatar billede nielle Nybegynder
26. november 2007 - 17:16 #15
neoman, smider du ikke et svar?
Avatar billede nielle Nybegynder
30. november 2007 - 19:23 #16
Takker fo point :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester