Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 12 odgovora
  • 3.838 pregleda

Najnovija ↓

C# problem s update baze 05.10.2009. u 19:59 · pre 207 meseci #1
Ovako, imam jedan problem sa kojim se mucim evo cijeli dan. Napravio sam bazu, stored procedure za sve tablice i preko aplikacije se vrsi sav rad sa bazom. Punjenje baze radi dobro, brisanje radi dobro, jedino sta ne radi dobro je na jednoj tablici gdje imam tip u bazi decimal, kad je idem update, javlja mi gresku, error: Error converting data type nvarchar to decimal. I to sam sa tom tablicom gdje ima decimal, sa ostalim tablicama nemam problema. Pa ako je neko imao slican problem il zna do cega bi moglo biti, da mi pomogne, bio bih jako zahvalan.
Re: C# problem s update baze 05.10.2009. u 20:17 · pre 207 meseci #2
Pretpostavljam da se preko neke aplikacije vrsi izmena podataka...pa s tim u vezi, verovatno iz nekog textboxa ili label-e pokusavas da vrsis izmenu podatka, a posto je za textbox(label) po defaultu tip podatka string (nvarchar) a u bazi ti je to polje tipa decimal, bez neke konverzije ne moze upisati izmenu u bazi... pokusaj sa nekim Convert.ToInt32(Textbox1.Text) ili posalji neki code, store proceduru, nesta na osnovu cega bi mogao konkretnije da ti pomognem
Potpis
jmix
Re: C# problem s update baze 05.10.2009. u 20:23 · pre 207 meseci #3
Mala ispravka, probaj sa Convert.ToDecimal(string)...a kad smo vec kod konvertovanja, uporno pokusavam da konveretujem label.text u decimal i nikako da mi uspe...pokusao sam i sa Convert.ToDecima(), i Decimal.Parse () ali mi uvek javlja poruku da ulazni string nije u odgovarajucem formatu (a ul.string je label.text) pa ako ima neko resenje nek javi ?!?
Potpis
jmix
Re: C# problem s update baze 05.10.2009. u 20:30 · pre 207 meseci #4
Da, preko aplikacije. Nemam ja problema, sa int vrijednostima, ni sa varchar vrijednostima, ni sa datumima, samo sa decimal; ali evo stavim proceduru i dio koda gdje se vrsi binding
evo procedura koja vrsi update
Code:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[proc_PorezStope_U]
     @Id int
    ,@Prz_Id int
    ,@Postotak decimal(5,2)
    ,@InverzKoeficijent decimal(7,6)
    ,@IznosOd money
    ,@IznosDo money
    ,@VrijediOd datetime
    ,@VrijediDo datetime
    ,@KorisnikUnosa int
    ,@VrijemeUnosa datetime
    ,@KorisnikPromjene int
    ,@VrijemePromjene datetime

AS
BEGIN
SET NOCOUNT ON;

  UPDATE optPorez_Stope
  SET 
       Prz_Id = @Prz_Id
      ,Postotak = @Postotak
      ,InverzKoeficijent = @InverzKoeficijent
      ,IznosOd = @IznosOd
      ,IznosDo = @IznosDo
      ,VrijediOd = @VrijediOd
      ,VrijediDo = @VrijediDo
      ,KorisnikUnosa = @KorisnikUnosa
      ,VrijemeUnosa = @VrijemeUnosa
      ,KorisnikPromjene = @KorisnikPromjene
      ,VrijemePromjene = @VrijemePromjene
        WHERE Id = @Id;
END


a evo i dio coda, da ne kopiram sav
Code:

Porez_StopeBLLprovider bll = new Porez_StopeBLLprovider();
...
            DataSet ds1 = bll.GetAll();
            DataTable tblPorez_Stope = ds1.Tables["optPorez_Stope"];
            DataTable tblKorisnici = ds1.Tables["Korisnici"];
            DataTable tblPorezi = ds1.Tables["optPorezi"];

            bndsPorez_Stope.DataSource = tblPorez_Stope;
            bndsKorisnici.DataSource = tblKorisnici;
            bndsKorisnici1.DataSource = tblKorisnici;
            bndsPorezi.DataSource = tblPorezi;

            cmbKUnos.DataSource = bndsKorisnici;
            cmbKUnos.DisplayMember = "Korisnik";
            cmbKUnos.ValueMember = "IdKorisnika";
            cmbKUnos.DataBindings.Add("SelectedValue", bndsPorez_Stope, "KorisnikUnosa");
            cmbKPromjene.DataSource = bndsKorisnici1;
            cmbKPromjene.DisplayMember = "Korisnik";
            cmbKPromjene.ValueMember = "IdKorisnika";
            cmbKPromjene.DataBindings.Add("SelectedValue", bndsPorez_Stope, "KorisnikPromjene");
            cmbPorezi.DataSource = bndsPorezi;
            cmbPorezi.DisplayMember = "Naziv";
            cmbPorezi.ValueMember = "Id";
            cmbPorezi.DataBindings.Add("SelectedValue", bndsPorez_Stope, "Prz_Id");

            dtpVUnosa.DataBindings.Add("Text", bndsPorez_Stope, "VrijemeUnosa");
            dtpVPromjene.DataBindings.Add("Text", bndsPorez_Stope, "VrijemePromjene");
            dtpVrijediOd.DataBindings.Add("Text", bndsPorez_Stope, "VrijediDo");
            dtpVrijediDo.DataBindings.Add("Text", bndsPorez_Stope, "VrijediOd");

            tbxPostotak.DataBindings.Add("Text", bndsPorez_Stope, "Postotak");
            tbxInverz.DataBindings.Add("Text", bndsPorez_Stope, "InverzKoeficijent");
            tbxIznosOd.DataBindings.Add("Text", bndsPorez_Stope, "IznosOd");
            tbxIznosDo.DataBindings.Add("Text", bndsPorez_Stope, "IznosDo");


Normalno ovaj dio poziva bll sloj iz kojeg se zove dll i on sprema sve u bazu, ali mislim da ta dva sloja nisu previse relevantan za ovu gresku
Re: C# problem s update baze 05.10.2009. u 21:28 · pre 207 meseci #5
U redu za bidovanje, ali kako ti izgleda komanda za Update ? Kako su tu definisani parametri ?
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# problem s update baze 05.10.2009. u 22:08 · pre 207 meseci #6
Upravo sam skontao, sto je, regionalne postavke, kad prebacim na engleski, sve radi savrseno. E sad drugi problem, kako da postavim automatski da program prima engleski, znam da to negdje postoji, ali ne mogu se sjetiti gdje tocno
Re: C# problem s update baze 05.10.2009. u 22:39 · pre 207 meseci #7
Stavi u Main funkciji:
Code:
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-EN");
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# problem s update baze 05.10.2009. u 22:48 · pre 207 meseci #8
Hm, sa ovim
Code:
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-EN");

u Mainu idalje imam zarez umjesto tacke u decimalnom broju, te i dalje javlja gresku :(
Re: C# problem s update baze 05.10.2009. u 23:10 · pre 207 meseci #9
Zameni CurrentUICulture sa CurrentCulture.
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# problem s update baze 06.10.2009. u 00:07 · pre 207 meseci #10
Vec sam to probao, ne pomaze ni to. Covek bi pomislio da su vec smislili normalan konverter i da su ga vec ugradili u ms sql, sto je najgore, takav parser cak nije tesko ni napraviti
Re: C# problem s update baze 07.10.2009. u 18:24 · pre 207 meseci #11
Uspio sam napraviti da mi aplikacija prikazuje broj s tockom, preko parsiranja, ali i dalje javlja gresku kod upisivanja u SQL bazu, zna li itko kako nju natjerati da parsira dobro vrijednosti one koje joj pasaljem?
Re: C# problem s update baze 08.10.2009. u 06:26 · pre 207 meseci #12
Hmmm, nesto radis debelo pogresno. Takve stvari bi trebale da budu transparentne i nevezane za odabrani jezik, i nema nikakvih potreba za parsiranjem/formatiranjem. Decimalni tip je decimalni tip, bez obzira na jezik. A narocito mi je sumljivo sto pored toga sto si stavio CultureInfo na engleski ne dobijas decimalne brojeve sa ispravnim prikazom. Znaci bez koda, tesko da ti neko moze pomoci ......

BTW koju bazu koristis, Access ?
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: C# problem s update baze 09.10.2009. u 18:21 · pre 207 meseci #13
provjeri dataset, možda si tamo krivo definirao tip.
možda je tamo varchar , a u bazi decimal.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme