---
title: "Problem med att uppdatera ett dataset"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/174389-problem-med-att-uppdatera-ett-dataset"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "saw"
published: "2008-09-28T09:16:39.000Z"
updated: "2008-09-28T16:10:47.000Z"
replies: 4
views: 442
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/174389-problem-med-att-uppdatera-ett-dataset"
---

# Problem med att uppdatera ett dataset

## #1 — saw, 2008-09-28T09:16Z

Enligt tidigare tråd så försöker jag att via en windows app, uppdatera en web servise för att uppdatera en databas på min hemsida.

I windows app, så försöker jag att hantera ett dataset. Jag börjar med att
hämta all data ifrån databasen, inga problem.
Jag har lagt alla värden ifrån textboxar mm i en array, inga problem.

Jag skall nu försöka uppdatera datasetet, för att sen skicka över det till
web servicen.

```
private void UppdateraFraga(string[] AllaVärden)
        {
            
            int fraga = listBox1.SelectedIndex;
            Application.DoEvents();
            int a = 0;
            foreach (string värde in AllaVärden)
            {//hit stämmer allt
                MessageBox.Show("Uppdatera " + a + " " + värde.ToString());
                ds.Tables["musikfraga"].Rows[0][a] = värde;
                a++;
            }
```

Via Messageboxen så kan jag se attvärden är med mig, men vad jag förstår
så uppdateras inte datasetet. Är jag fel ute eller hur bör jag göra.

Permalänk: https://www.webforum.nu/p/174389

## #2 — freguz, 2008-09-28T09:27Z

inte helt säker men skulle tro att man även måste

```
ds.AcceptChanges();
```

Permalänk: https://www.webforum.nu/p/2144369

## #3 — Nickemannen, 2008-09-28T10:11Z

> **saw skrev:**
>
> Enligt tidigare tråd så försöker jag att via en windows app, uppdatera en web servise för att uppdatera en databas på min hemsida.
> 
> I windows app, så försöker jag att hantera ett dataset. Jag börjar med att
> hämta all data ifrån databasen, inga problem.
> Jag har lagt alla värden ifrån textboxar mm i en array, inga problem.
> 
> Jag skall nu försöka uppdatera datasetet, för att sen skicka över det till
> web servicen.
>
>
> ```
> private void UppdateraFraga(string[] AllaVärden)
>         {
>             
>             int fraga = listBox1.SelectedIndex;
>             Application.DoEvents();
>             int a = 0;
>             foreach (string värde in AllaVärden)
>             {//hit stämmer allt
>                 MessageBox.Show("Uppdatera " + a + " " + värde.ToString());
>                 ds.Tables["musikfraga"].Rows[0][a] = värde;
>                 a++;
>             }
> ```
>
> 
> Via Messageboxen så kan jag se attvärden är med mig, men vad jag förstår
> så uppdateras inte datasetet. Är jag fel ute eller hur bör jag göra.

Om du visa Servicen hämtar all data så måste du också spara all data.

DataSet GetData();
void SaveData(DataSet dataSet);

Även om detta kan vara en ganska dålig apporach tycker jag eftersom du skickar onödigt mycket data. Så ett bättre sätt hade ju varit

DataSet GetData();
void SaveOrUpdate(DataRow row);

Fast jag tycker ju visserligen helst att man skippar dataset's och gör objekt istället.

Permalänk: https://www.webforum.nu/p/2144374

## #4 — saw, 2008-09-28T11:03Z

Tack för kommentarer. jag hittade en snutt som fixade uppdateringen hyffsat.

```
int fraga = listBox1.SelectedIndex;
            DataTable dataTable = ds.Tables[0];
            DataRow selectedRow = dataTable.Rows[listBox1.SelectedIndex];
            da.Fill(ds, "musikfraga");
            Application.DoEvents();
            selectedRow.BeginEdit();
                selectedRow["Fraga"] = AllaVärden[1];
                selectedRow["Allt1"] = AllaVärden[2];
                selectedRow["Allt2"] = AllaVärden[3];
                selectedRow["Allt3"] = AllaVärden[4];
                selectedRow["Svar"] = AllaVärden[5];
                selectedRow["Ratt"] = AllaVärden[6];
            selectedRow.EndEdit();

            DataSet dsChanges = ds.GetChanges(DataRowState.Modified);
            bool okayFlag = true;
            if (dsChanges.HasErrors)
                {
                    MessageBox.Show("ERROR");
                }
            if (okayFlag)
            {
                da.Update(dsChanges, ("musikfraga"));
                label1.Text ="Updated " + selectedRow["Fraga"];
                Application.DoEvents();
                ds.AcceptChanges();
               
            }
            else 
                ds.RejectChanges();
            listBox1.SelectedIndex = fraga;
```

Detta är alltså hela updaten för att ändra i datasetet, är det dåligt?
Hur menade du Nickemannen med att göra object i stället?

Permalänk: https://www.webforum.nu/p/2144377

## #5 — saw, 2008-09-28T16:10Z

Jag kanske tänker galet, eftersom jag har alla värden sparade i "AllaVärden" so borde
det väll vara bättre och skicka det till Web Servicen och göra mina uppdateringar där?

Permalänk: https://www.webforum.nu/p/2144408

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/174389-problem-med-att-uppdatera-ett-dataset
