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


Kopiera rader till nytt dataset

Postades av 2004-03-29 13:01:37 - Jonas Stenman, i forum databaser, Tråden har 11 Kommentarer och lästs av 992 personer

Hjälp! Ska returnera ett nytt dataset som jag fyllt med värde från lagrade procedurer. Tänkte mig något i stil med följande, men det verkar inte funka så bra än:

Dim rows As DataRow
Dim dsResult As New DataSet()
Dim cnt As Integer = 0
For Each rows In dsTypesID.Tables(0).Rows ' krasch
dsResult.Tables(0).Rows(cnt).Item(0) = dsTypesID.Tables(0).Rows(cnt).Item(1)
dsResult.Tables(0).Rows(cnt).Item(1) = caseDebt(dsTypesID.Tables(0).Rows (cnt).Item(0), caseID)
dsResult.Tables(0).Rows(cnt).Item(2) = casePayed(dsTypesID.Tables(0).Rows (cnt).Item(0), caseID)
dsResult.Tables(0).Rows(cnt).Item(3) = balance(dsTypesID.Tables(0).Rows(cnt).Item(0), caseID)
dsResult.Tables(0).Rows(cnt).Item(4) = nextPaymentCalc(dsTypesID.Tables(0).Rows(cnt).Item(0), caseID, nextPayment)
cnt = cnt + 1 ' öka räknaren till nästa rad.
Next
Return dsResult ' nytt ds med resultatet från samtliga funktioner - procedurer


Måste jag skapa nya rows osv. innan jag kan fylla dem?
Tacksam för hjälp..


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-29 13:38:54 - Thomas Vanhaniemi

Hej!

Har ditt dataset "dsTypesID" någon tabell över huvudtaget?
Om den inte har det blir det en krasch...

Kolla om dsTypesID.Tables.Count = 0, annars borde den kunna gå vidare därifrån...

Dessutom måste du lägga in en tabell och columner i tabellen i datasetet du vill fylla...
Hur hämtar du ut data från databasen?

Mvh,
Thomas


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-29 13:45:20 - Thomas Vanhaniemi

<code>
Dim rows As DataRow
Dim dsResult As New DataSet()
For Each rows In dsTypesID.Tables(0).Rows ' krasch
dsResult.Tables(0).Rows(cnt).Item(0) = rows.Item(1)
dsResult.Tables(0).Rows(cnt).Item(1) = rows.Item(0), caseID)
dsResult.Tables(0).Rows(cnt).Item(2) = rows.Item(0), caseID)
dsResult.Tables(0).Rows(cnt).Item(3) = balance(rows.Item(0), caseID)
dsResult.Tables(0).Rows(cnt).Item(4) = nextPaymentCalc(rows.Item(0), caseID, nextPayment)
Next

Return dsResult ' nytt ds med resultatet från samtliga funktioner - procedurer
</code>


Denna kod borde fungera likadant som din ovan, lite enklare att läsa bara...
Men vad vill du åstadkomma? Har du flera procedurer i databasen du vill få in i ett dataset?

Mvh,
Thomas Vanhaniemi


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-29 13:46:41 - Janne Hentschel

Du kanske ska titta på SELECT INTO

//Janne


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-29 14:02:05 - Jonas Stenman

Så här hämtar jag data till dsTypesID, detta ds får bara ett id och ett namn från en lagrad procedur. Tanken är att hämta varje ID från dsTypesID och skicka med till funktioner som i sin tur returnerar värden, detta för att kunna presentera allt från ett dataset till GUI i en datagrid i en tre-skiktslösning.

conn = connectToEuropainkasso()
Dim cmd As SqlCommand = New SqlCommand("Ink_costTypesNameID", conn)
cmd.CommandType = CommandType.StoredProcedure
conn.Open()
Dim dap As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dsTypesID As New DataSet()
dap.Fill(dsTypesID, "TypesID") ' eller 0
conn.Close()

Ska försöka med din förenkling, är jag rätt på det?
/Jonas


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-29 14:08:13 - Jonas Stenman

Angående lagrade procedurer så har jag en från varje funktion i loopen, där jag skickar med id't från dsTypesID - resultatet sedan från varje ID, är ju tänkt att lagras som en post på varje rad i datasetet..

/Jonas


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-29 15:06:10 - Thomas Vanhaniemi

Hej igen!

Har du kontrollerat att din SP verkligen retunerar något och att det finns en tabell i datasetet?
Det är ju det mest väsentliga i första hand...
Andra saken du måste se till är ju att datasetet du sätter in sakerna i har rätt antal kolumner av rätt typ etc...
Dessutom, om du ska sätta in data i en tabell måste du ju lägga till nya rader för varje loop...

Men kan du inte skriva en SP som retunerar allt som du vill ha?
Man ska, vad jag har lärt mig, köra så mycket som möjligt i databasen för den är specialicerad på att hämta och hantera data...

Är nu ingen expert på SP men det borde gå...

Hur ser din kod ut nu?

Mvh,
Thomas


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-29 15:23:57 - Jonas Stenman

Ja, procedurerna returnerar data och t ex dsTypesID har en tabell med data i sig för det har jag kollat. Varför jag måste ha olika procedurer är för att de är väldigt komplexa och går inte att sammansfoga i en enda. Inte nu iallafall. Jag har följande kod för att skapa tabell o rader att kopiera till:

Dim rows As DataRow
Dim dsResult As New DataSet()
Dim cnt As Integer = 0

Dim rowCount As Integer = dsTypesID.Tables(0).Rows.Count
Dim tbl As New DataTable()
dsResult.Tables.Add(tbl)

Dim counter As Integer = 0
For counter = 0 To rowCount
Dim newRow As DataRow
newRow = dsResult.Tables(0).NewRow
dsResult.Tables(0).Rows.Add(newRow)
Next counter

Detta borde kunna ske i samma loop men inte klar än..
Sen kommer kopieringen från funktionerna igen här:

For Each rows In dsTypesID.Tables("TypesID").Rows
' Hämtar ett namn från dsTypesID direkt tänkte jag!
dsResult.Tables(0).Rows(cnt).Item(0) = dsTypesID.Tables(0).Rows(cnt).Item(1)
dsResult.Tables("TypesID").Rows(cnt).Item(1) = caseDebt(dsTypesID.Tables(0).Rows (cnt).Item(0), caseID) ' Räkna ut tot. skulden på kost.typen skicka med kostnadstypID och ärendeID
dsResult.Tables("TypesID").Rows(cnt).Item(2) = casePayed(dsTypesID.Tables(0).Rows(cnt).Item(0), caseID) ' Räkna ut tot. inbetalningar på kost.typen skicka med kostnadstypID och ärendeID
dsResult.Tables("TypesID").Rows(cnt).Item(3) = balance(dsTypesID.Tables(0).Rows(cnt).Item(0), caseID) ' Räkna ut balansen på tot.skulder - tot.inbetalningar på kost.typen skicka med kostnadstypID och ärendeID
dsResult.Tables(0).Rows(cnt).Item(4) = nextPaymentCalc(dsTypesID.Tables(0).Rows(cnt).Item(0), caseID, nextPayment) ' Räkna ut vad resultatet blir med föreslagen inbetalning
cnt = cnt + 1 ' öka räknaren till nästa rad.
Next
Return dsResult ' nytt ds med resultatet från samtliga sp

Hmm, ja det ser lite rörigt ut.. Finns det inget sätt att infoga kod i ett medd på ett bättre sätt, din är gråmarkerad!?


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-29 15:53:18 - Jonas Stenman

Okej, jag tror jag har kladdat till det mer än vad som behövs! Egentligen kan jag ju lägga till kolumner i mitt bef. dataset "dsTypesID" istället för att skapa ett nytt och kopiera till. Jag har ju id och namn på kolumn 0 och 1, sen ville jag ju hämta värden från procedurerna relaterat till varje id på kolumn 0. Jag borde kunna lägga till nya kolumner och poster till varje rad(id) i loopen istället, det som verkar vara problemet är att få till koden så att id't på varje rad(kolumn 0) ska skickas med till funktionen och vidare till proceduren för att sen samtidigt tilldelas datasetet och en ny kolumn. Knepigt förklarat kanske..men nått sånt! :)


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-30 17:21:44 - Thomas Vanhaniemi

<code>
Dim Row As DataRow
Dim dsResult As DataSet = dsTypesID.Clone

For Each Row In dsTypesID.Tables("TypesID").Rows
Dim NewRow As DataRow = dsTypesID.Tables("TypesID").NewRow

NewRow.Item(0) = Row.Item(1)
NewRow.Item(1) = caseDebt(Row.Item(0), caseID) ' Räkna ut tot. skulden på kost.typen skicka med kostnadstypID och ärendeID
NewRow.Item(2) = casePayed(Row.Item(0), caseID) ' Räkna ut tot. inbetalningar på kost.typen skicka med kostnadstypID och ärendeID
NewRow.Item(3) = balance(Row.Item(0), caseID) ' Räkna ut balansen på tot.skulder - tot.inbetalningar på kost.typen skicka med kostnadstypID och ärendeID
NewRow.Item(4) = nextPaymentCalc(Row.Item(0), caseID, nextPayment) ' Räkna ut vad resultatet blir med föreslagen inbetalning

dsResult.Tables(0).Rows.Add(NewRow)
Next

Return dsResult ' nytt ds med resultatet från samtliga sp
</code>

Testa med ovanstående, ska vara bara att kopiera och testa...
Har försökt förenkla för att visa hur det kan se ut...

Mvh,
Thomas


Svara

Sv: Kopiera rader till nytt dataset

Postades av 2004-03-30 17:56:44 - Thomas Vanhaniemi

Du vet väl att man kan lägga in SQL satser i ett Dataset?
En bra funktion...

Mvh,
Thomas


Svara

Nyligen

  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK

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 973
27 965
271 783
3 416
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