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 | 1718 (1529) | mihies |
| » | [C#] Sort za string (slovenska abeceda)Oddelek: Programiranje | 1115 (924) | mihies |
| » | c# classOddelek: Programiranje | 2470 (2064) | japol |
| » | Visual Studio - koda za prikaz OS?Oddelek: Programiranje | 1232 (999) | detroit |
| » | C# delo z datumiOddelek: Programiranje | 1231 (1132) | MaCoFaCo |
