Forum » Programiranje » Težava pri vnosu decimalnega števila v bazo (C#, Access)
Težava pri vnosu decimalnega števila v bazo (C#, Access)
nemonemo ::
Pozdravljeni,
v c# imam težavo, kadar želim vnesti decimalno vrednost v bazo.
Primer: kadar želim shraniti vrednost 1,5 mi v bazo shrane kot 15. Mislim sem, da je problem v parsanju iz teksta v decimalno število, vendar sem preko debuganja odkril, da temu ni tako. Prav tako je stolpec v bazi določen kot decimal.
v c# imam težavo, kadar želim vnesti decimalno vrednost v bazo.
Primer: kadar želim shraniti vrednost 1,5 mi v bazo shrane kot 15. Mislim sem, da je problem v parsanju iz teksta v decimalno število, vendar sem preko debuganja odkril, da temu ni tako. Prav tako je stolpec v bazi določen kot decimal.
txtKm.Text="1,5"; zelezniceDataSet.VozniRediRow row; row.Km = decimal.Parse(txtKm.Text); zelezniceDataSet.VozniRedi.AddVozniRediRow(row); vozniRediTableAdapter.Update(zelezniceDataSet.VozniRedi);
japol ::
Jaz sem to rešil z:
...Decimal.Parse(decimalNumber, new System.Globalization.CultureInfo("en-us")
globalizacija in "en-us" ker: "Represents text as a series of Unicode characters", ko sem vezal npr. datagridview z Accessom, Excel,...
...Decimal.Parse(decimalNumber, new System.Globalization.CultureInfo("en-us")
globalizacija in "en-us" ker: "Represents text as a series of Unicode characters", ko sem vezal npr. datagridview z Accessom, Excel,...
Mitja Bonča ::
Lahko tako kot je japol svetoval, da uporabiš new CultureInfo, ki to jevije spremeni v pike (ali obratno), ali pa narediš preprosto čekiranje:
if(txtKm.text.Contains(",")) txtKm.Text = txtKm.Replace(",","."); //zamenja vejico za piko. //in ostala koda...
nemonemo ::
Saj sem napisal, da ni problem v parsanju, ker vrednost vredu pretvori. Potem ko vnesem to vrednost v bazo mi spremeni iz 1,5 v 15.
Link do aplikacije
Link do aplikacije
Zgodovina sprememb…
- spremenil: nemonemo ()
Mitja Bonča ::
kakšen tip imaš v podatkovnio bazi? je to int, decimal? Mora biti decimal.
Decimal ima tudi dva parametera, 1 je število posameznih števil, 2 je število decimalih mest:
decimal(10,2) pomeni: max 10 števil, od teh the decimalni mesti.
Imaš tako?
Če imaš, je ena druga koda (tvoja seveda) kriva za zaokoževanje( oz. odstranjevanje decimalne oznake).
Decimal ima tudi dva parametera, 1 je število posameznih števil, 2 je število decimalih mest:
decimal(10,2) pomeni: max 10 števil, od teh the decimalni mesti.
Imaš tako?
Če imaš, je ena druga koda (tvoja seveda) kriva za zaokoževanje( oz. odstranjevanje decimalne oznake).
nemonemo ::
Spura ::
1,5 je 15 v ameriki. Vnasa povsem pravilno.
Una resitev z replaceom ne bo dobra. Ker lahko jst vnesem "15.000,00".
Una resitev z replaceom ne bo dobra. Ker lahko jst vnesem "15.000,00".
Samuel ::
decimalka v USA je s piko, ne vejico?
If you notice this notice, you will notice that this notice is
noticably not worth noticing.
noticably not worth noticing.
Mitja Bonča ::
Poglej tukaj razliko:
Za US se uporablja kot separator pika, pri nas (slo) pa se uporablja vejica.
Uporabi CultureInfo class za določanje separatorja.
string strNo1 = "12.34"; decimal decNo1 = Decimal.Parse(strNo1, new CultureInfo("en-US")); string strNo2 = "12,34"; decimal decNo2 = Decimal.Parse(strNo2, new CultureInfo("sl-SI"));
Za US se uporablja kot separator pika, pri nas (slo) pa se uporablja vejica.
Uporabi CultureInfo class za določanje separatorja.
nemonemo ::
Sem že dvakrat napisal, da ni problem v parsanju, ker sem zdebugal zadevo. Nekaj drugega more biti :/
technolog ::
Probaj direktno vstavit v bazo, ne prek vmesnika, ampak prek SQL stavka. Potem boš takoj vedel, v katerem grmu tiči zajec.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] sortiranje priimkov po slovenski abecediOddelek: Programiranje | 1573 (1384) | mihies |
» | [C#] Sort za string (slovenska abeceda)Oddelek: Programiranje | 965 (774) | mihies |
» | c# classOddelek: Programiranje | 2264 (1858) | japol |
» | Visual Studio - koda za prikaz OS?Oddelek: Programiranje | 1081 (848) | detroit |
» | C# delo z datumiOddelek: Programiranje | 1130 (1031) | MaCoFaCo |