webForumDet fria alternativet

Manupulera ett dataset

.NET

7 svar · 537 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag plockar ner ett datasett ifrån min webservice, inga problem.
Jag kan få fram alla mina deltaljer även web-specefika.
Mitt problem nu är att kunna manupulera mitt dataset.
Alla exempel som jag har sett på nätet förutsätter att man har en connection
fyller en adapter osv, men hur gör jag när jag vill
1 Delita en post vars id-nr jag får ifrån en listbox.
2 Uppdatera en post vars id-nr osv

Detta är mina primära frågor, men det kommer nog flera. :OO

Medlem sedan dec. 19996 721 inlägg
#2

Leta reda på rätt rad i DataTable-objektet, mha av t.ex. dt.[/]Select eller dt[/].Rows.Find. Uppdatera värdet eller deleta raden.

Medlem sedan mars 20011 880 inlägg
#3

Jag hittade hur jag skulle göra:

//delete
myData.Tables[0].Rows.RemoveAt(listVal.SelectedIndex);
//uppdatera
 string sText = webBrowser1.Document.GetElementById("Inlagg").InnerText;
 myData.Tables[0].Rows[listVal.SelectedIndex]["inlagg"] = sText;

Nu blev detta bra.

Nästa fråga, nu harjag ju ett dataset i men windows.application, som då skall
skickas till min webservice.
Hur uppdaterar jag då databasen med hjälp av ett dataset? :stud

Medlem sedan mars 20011 880 inlägg
#4

Nu har jag gjort så här:
I min windows app.

myData.Merge(SAWService.UpdateDs(myData, what), true);

Där myData är den manupulerade datasetet.
what är vilken applikation (gästbok forum osv).

Sedan i min webservice:

[WebMethod]
    public DataSet UpdateDs(DataSet ds,string what)
    {
        try
        {
            string sql = "";
            switch (what)
            {
case "Gästbok":
                    sql = "SELECT gastbok.Id, gastbok.namn, gastbok.ort, 
gastbok.epost, gastbok.hsida, gastbok.hittade, gastbok.inlagg, 
gastbok.datum FROM gastbok ORDER BY ID DESC";
                    break;
//osv
}
 OleDbConnection DBConn = new OleDbConnection(ConnectionString);
            OleDbDataAdapter da = new OleDbDataAdapter(sql, DBConn);
            OleDbCommandBuilder ca = new OleDbCommandBuilder(da);
            da.Update(ds,what); <-----------Här blir det fel
            return ds;
        }
        catch(Exception fel) 
        {
            throw fel;
        }
        return ds;
    }

Jag får ett error som säger :

System.Web.Services.Protocols.SoapException: Servern kunde inte behandla 
begäran. ---> System.InvalidOperationException: Det gick inte att hitta 
TableMapping['Gästbok'] eller DataTable Gästbok.

Jag förstår felet men jag vet inte hur jag skall lösa det.

Medlem sedan maj 20012 812 inlägg
#5

saw skrev:

Nästa fråga, nu harjag ju ett dataset i men windows.application, som då skall
skickas till min webservice.

Generellt är det en dåligt ide att använda sig av dataset och webservices. Mest eftersom dataset är .NET specifika och webservices är tänkta som generella så vilka språka som helst skall kunna använda dem. Sedan så är perstandan inte den bästa, även om den blivit bättre i .NET 2.0 mot .NET 1.1.

Nej skall man använda sig webservices så är det Entiteter som gäller, säger jag och resten av världen (om man inte räknar med Microsoft förstås)...

Sen måste jag kommentera ditt namn på metoden, den heter update, men din SQL sats är en SELECT. Hur går det ihop?

- M

Medlem sedan mars 20011 880 inlägg
#6
Sen måste jag kommentera ditt namn på metoden, den heter update, 
men din SQL sats är en SELECT. Hur går det ihop?

Det var någonting på nätet som jag hittade och försökte med.
Ovsett vilket så vill jag gärna göra denna saken. Jag skickar alltså up ett dataset till
webservicen, hur uppdatera jag databasen med hjälp av datasetet?

Medlem sedan maj 20012 812 inlägg
#7

saw skrev:

Jag skickar alltså up ett dataset till
webservicen, hur uppdatera jag databasen med hjälp av datasetet?

Tyvärr kan jag inte hjälpa dig mot det, då jag aldrig har jobbat med dataset.

Men finns det ingen Update-metod på datasetet eller på dataAdaptern där du skickar in ditt dataset som du har ändrat i?

- M

Medlem sedan mars 20011 880 inlägg
#8

Tack för alla svar. jag har inte lyckats med att lösa det. Jag hadde tänkt att använda det som min "admin-sida" för ändring och uppdatering av min databas på webben. Jag får nu göra som jag brukar, ha några websidor som gör detta.

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)