Jag blir så trött! Försöker förstå det här med databaser. Hej, Tack Johan för svaret. Hej igen, Tack Johan för ditt svar och nu har jag löst problemet efter 8-10 h .........Nybörjar fråga
Snälla, förklara för mig hur det hänger ihop!
Jag har en SqlConnection1, en SqlDataAdapter1 och ett DataSet1.
I databasen finns en tabell "tabell1".
'Hämtar data från databasen till DataSet1
SqlDataAdapter1.Fill(DataSet1.tabell1)
Sedan visar jag innehållet i en DataGrid
DataGrid1.DataSource = DataSet1.tabell1
Det är dags att ställa den första frågan och jag fattar ingenting........
För det första. De exempel jag hittar visar att man ska öppna en anslutning mot databasen, ställa en fråga och sedan stänga anslutningen. Men jag har ju redan kopierat ut innehållet till tabell1. Är det inte där man ska läsa och spara ev. ny info innan man till slut uppdaterar basen?
mvh OlaSv: Nybörjar fråga
Som med det mesta anant här i livet så finns det flera sätt att göra saker på. I vissa fall är det en smaksak, medan andra fall är en avvägning av olika funktionalitet.
Så båda sättet går att göra för din del.
I fallet med en dataadapter så har du en frånkopplad datamängd som du kan manipulera utan att skicka fram och tillbaka till databasen hela tiden. På så stt vinner du lite tid.
Nackdelen är att din data är just fårnkopplad, så om någon anan samtidigt ändrar i databasen så kan du få problem. Med andra ord så får du fundera mer på synkronisering.
Har man en dirket koppling till databasen så har man fördelen att data alltid är uppdaterad och korrekt, men istället kan man i fleranvändarsystem få problem med låsningar så även här finns en form av synkroniseringsproblematik att ta hänsyn till.
Lycka till!
// JohanSv:Nybörjar fråga
Finns det samma möjligheter att söka och ändra info i tabellen som direkt i databasen? Gör man på samma sätt eller?
Och så nästa fråga som är viktigare just nu:
Nytt problem, och flera timmar för att försöka lösa det…..
Det går bra att lägga in text datum och heltal i mitt DataSet, men det är helt omöjligt att få in ett decimaltal. Jag har försökt med ”allt” men inget fungerar.
När jag fyller i tabellen skapar jag en ny rad, lägger in info för varje kolumn och lägger sedan till raden med ”ADD”. Värdet i den nya raden är rätt innan jag ”kör” ”ADD”, men det är bara heltalet som sparas i tabellen. Det enda sättet att få in ett decimaltal i tabellen är om jag manuellt går in i databasen och lägger in talet och sedan uppdaterar tabellen från databasen.
Vad gör jag för fel?
Mvh OlaSv: Nybörjar fråga
Så länge man jobbar med en aktiv connection så jobbar man direkt mot databasen och kan dörför göra sökningar, läsningar, uppdateringar, radera data osv precis som man vill och man gör det direkt.
När det gäller ditt nästa problem så vill jag inledningsvis säga att jag aldrig jobbar med en dataadapter själv eftesom jag är bortskämd med system med snabba databaskopplingar så om det finns några specialfall här så känner jag inte till dem.
Genrellt så skulle jag börja med att kolla att jag har rätt datatyp för mina klumner. Nästa steg skulle vara att kolla att jag har rätt decimalseparator. Beroende på inställingar i databas, lokal dator osv så kan det ibland vara ett komma och ibland en punkt som används som avskiljare.
Återkom gärna med mer detaljer kring ditt problem om detta inte löser det.
Lycka till!
// JohanSv:Nybörjar fråga
Jag använder "ASP.NET Web Matrix" för att skapa databasen, tabeller och göra inställningar för dessa.
I VB.NET "hämtar" jag sedan tabellen från "Server Explorer" och en "Connection" samt "DataAdapter" skapas. Sedan går jag in under DATA/Generate DataSet och skapar detta.
Igår när jag satt och letade efter felet hittade jag till slut i "ASP.NET Web Matrix" en inställning för hur många decimaler som ska sparas i kolumnen. Den stod inställd på 0 och jag trodde att problemet var löst. Men när jag försökte i VB.NET så kvarstod felet. Jag gav upp och kröp ner under täcket .......
Idag bestämde jag mig för att göra ett nytt program för att bara analysera detta fenomen och när jag kör koden så fungerar allt som det ska! Började leta efter felet i det ”rätta” programmet och hittade till slut felet. Det visade sig att min ändring för antal decimaler i "ASP.NET Web Matrix" inte slagit igenom i mitt DataSet. Jag tog bort det, skapade ett nytt och problemet var löst. ….
Mvh Ola