Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa update-om tabele

[es] :: .NET :: Problem sa update-om tabele

[ Pregleda: 936 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

VerbatimBOT
Aleksandar Dragosavac
Senior .NET Developer
Serbia, Belgrade

Član broj: 84129
Poruke: 224
*.kalik.info.

Sajt: https://www.xing.com/prof..


Profil

icon Problem sa update-om tabele13.08.2006. u 15:22

Dakle ovako, imam sledecu stranu

i neki problem pri ažuriranju postojeceg zapisa u tabeli.
Kada kliknem na link "izmena" u DataGridu, podaci za taj zapis se citaju iz tabele i postavljaju u kontrole (TextBox ispod kalendara, TextBox za srpski i engleski). Dugme "Unos" menja svoj tekst u "Ažuriraj", a sve se odigrava tako što se pri kliku na "izmena" radi Response.Redirect("ista_strana.aspx?mode=edit&id=ID_ZAPISA").
Pri kliku na dugme "Ažuriraj", provera se da li je mode "edit" i ako jeste, umesto INSERT, radi se UPDATE, što je definisano sledecim kodom:
Code:

If (Request("mode") = "edit") Then
            komanda.CommandText = "update s_dayHistory set Date = @date, srText = @srText, enText = @enText where ID = @id"
            Dim pId As New SqlParameter("@id", SqlDbType.BigInt)
            pId.Value = Int32.Parse(Request("id").ToString())
            komanda.Parameters.Add(pId)
            Dim p1 As New SqlParameter("@date", SqlDbType.SmallDateTime)
            p1.Value = DateTime.Parse(txtIzabraniDatum.Text)
            'p1.Value = DateTime.Parse(txtEngleski.Text.Substring(0, 9))
            komanda.Parameters.Add(p1)
        Else
            If (Request("mode") = "default") Then
                komanda.CommandText = "insert into s_dayHistory(Date, srText, enText) 

values(@date, @srText, @enText)"
            End If
        End If
    Dim p2 As New SqlParameter("@srText", SqlDbType.NVarChar, 500)
        Dim p3 As New SqlParameter("@enText", SqlDbType.NVarChar, 500)
        p2.Value = txtSrpski.Text
        p3.Value = txtEngleski.Text
        komanda.Parameters.Add(p2)
        komanda.Parameters.Add(p3)

Kasnije se normalno nastavlja kod
Code:

Try
            If (konekcija.State = ConnectionState.Closed) Then
                konekcija.Open()
            End If
            komanda.Prepare()
            komanda.ExecuteNonQuery()
            konekcija.Close()
        Catch ex As Exception
            Response.Write("Greska: " & ex.Message)
            Return
        End Try

Problem je što on sve ovo prodje bez greške, ali naravno ne uradi update. Ja sumnjam na to da format datuma nije isti (u SQL Server bazi i na nivou aplikacije radjene u VS2003), ali nemam rešenje.
Winners never quit, quitters never win.
13.08.2006. u 15:22 

sivan347
.NET Programer
Beograd

Član broj: 84406
Poruke: 101
*.fiberop.matgnet.com.



Profil

icon Re: Problem sa update-om tabele14.08.2006. u 09:24
Posto ti ne izbacuje gresku moras da debug-ujes kod da vidis tacno gde se sta poziva i vrednosti promenljivih. Ako sumnjas na datum nemoj koristiti SmallDateTime nego DateTime i format datuma koji prolazi u MSSQL bazi je mesec.dan.godina (mm.DD.yyyy).
14.08.2006. u 09:24 

VerbatimBOT
Aleksandar Dragosavac
Senior .NET Developer
Serbia, Belgrade

Član broj: 84129
Poruke: 224
217.24.18.*

Sajt: https://www.xing.com/prof..


Profil

icon Re: Problem sa update-om tabele14.08.2006. u 10:59
Promenio sam tip podatka u DateTime i opet ne radi.
Najveća fora je u tome što mi pri debugovanju ne prijavljuje nikakvu grešku, uredno setuje vrednosti parametara na željene vrednosti, ali jednostavno NE RADI UPDATE !!!
Aaaaaaaaaaaaaaaah !!!
Winners never quit, quitters never win.
14.08.2006. u 10:59 

spartak

Član broj: 5625
Poruke: 631
*.ptt.yu.



Profil

icon Re: Problem sa update-om tabele15.08.2006. u 09:35
Ajde upali Profiler (sql server) pa uhvati taj update da li se uopste okida nad bazom, i ako da koje vrednosti salje. Nisam se sad koncentrisao na tvoj kod, ali prva ideja bi mi bila da proverim da ne pokupi ponovo stare vrednosti pa njih posalje kao params.

Vidi u profiler da li do baze stizu vrednosti pa ces onda znati sta dalje da gledas.
15.08.2006. u 09:35 

logic_rabbit
Radenko Zec
banjaluka

Član broj: 74458
Poruke: 224
*.lanaco.com.

Sajt: www.developers.ba


Profil

icon Re: Problem sa update-om tabele15.08.2006. u 10:23
Vidi na kraju kako izgleda taj zavrsni SQl koga izvrsavas,kopiraj ga u query analyzer i probaj izvrsiti.Onda ces znati na cemu si.
logic_rabbit (MCAD,MCSD,MCT,MCTS-Windows development,MCPD)
http://blog.developers.ba
15.08.2006. u 10:23 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 2421
69.17.213.*

Sajt: blog.mitrovic.rs


Profil

icon Re: Problem sa update-om tabele15.08.2006. u 14:05
Hmm, jeste da je glupo pitanje, ali da li si siguran da u tabeli postoji zapis ciji je ID = ID_ZAPISA? Pretpostavljam da ima posto ucitas stare vrednosti, al morao sam da pitam

Drugo, probaj da parametar @ID prosledis kao Int, ne BigInt, nesto mi govori da ti kljuc u toj tabeli nije 64bitni integer...

Trece, imas bug nevezan za tvoje pitanje, ako je mode=default kreiraces INSERT komandu koja koristi parametar @date, ali neces proslediti taj parametar u komandu.

Btw, mali saveti, ako unutar ELSE segmenta imas samo drugi IF, bolje iskombinuj u ELSE IF, generisace manje MSIL koda. I ubaci finally konstrukciju koja zatvara konekciju ako je otvorena, kako stvari sad stoje ako ExecuteNonQuery pukne ostace ti otvorena konekcija.









▪ The quicker a phone is answered in sales, the slower it's answered in customer services - Brownridge's Law
▪ Democracy is a device that ensures we shall be governed no better than we deserve - George Bernard Shaw
▪ To err is human--and to blame it on a computer is even more so - Robert Orben
15.08.2006. u 14:05 

VerbatimBOT
Aleksandar Dragosavac
Senior .NET Developer
Serbia, Belgrade

Član broj: 84129
Poruke: 224
217.24.18.*

Sajt: https://www.xing.com/prof..


Profil

icon Re: Problem sa update-om tabele15.08.2006. u 14:23
Citat:
mmix: da li si siguran da u tabeli postoji zapis ciji je ID = ID_ZAPISA? Pretpostavljam da ima posto ucitas stare vrednosti, al morao sam da pitam :)


Da bre! :)
Nije do parametra, postavim direktno da proverava sa Request("ID") i opet nece!

Trece, imas bug nevezan za tvoje pitanje, ako je mode=default kreiraces INSERT komandu koja koristi parametar @date, ali neces proslediti taj parametar u komandu.

Ovo cu pogledati!

Btw, mali saveti, ako unutar ELSE segmenta imas samo drugi IF, bolje iskombinuj u ELSE IF, generisace manje MSIL koda. I ubaci finally konstrukciju koja zatvara konekciju ako je otvorena, kako stvari sad stoje ako ExecuteNonQuery pukne ostace ti otvorena konekcija.

Nemam vremena sad da radim, javljam ako naidjem na gresku i kad testiram vase predloge.
Winners never quit, quitters never win.
15.08.2006. u 14:23 

VerbatimBOT
Aleksandar Dragosavac
Senior .NET Developer
Serbia, Belgrade

Član broj: 84129
Poruke: 224
*.co.yu
Via: [es] mailing liste

Sajt: https://www.xing.com/prof..


Profil

icon Re: Problem sa update-om tabele17.08.2006. u 19:15
Code:
Btw, mali saveti, ako unutar ELSE segmenta imas samo drugi IF, bolje iskombinuj u ELSE IF, generisace manje MSIL koda. I ubaci finally konstrukciju koja zatvara konekciju ako je otvorena, kako stvari sad stoje ako ExecuteNonQuery pukne ostace ti otvorena konekcija.

Jbg, tek sam na početku za VB.NET, jer sam počeo da ga koristim pre dve nedelje (jer moram), inače bi ja to sve ispeglao u C#.
Winners never quit, quitters never win.
17.08.2006. u 19:15 

[es] :: .NET :: Problem sa update-om tabele

[ Pregleda: 936 | Odgovora: 7 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.