(Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Delphi .net ve .net ile ilgili konuları buraya yazabilirsiniz.
Cevapla
serkan
Üye
Mesajlar: 666
Kayıt: 09 Tem 2003 11:08
Konum: bursa

(Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Mesaj gönderen serkan » 17 Oca 2009 02:12

Selam arkadaşlar bir ticari program ile entegre B2B web sitesi hazırlamaktayım.
Ticari programda siparistutar alanı (Numeric,28,9) şeklinde tanımlanmış (MS SQL).Webformumda textbox1 içinde 49,99 değeri bulunmakta bunu insert into ile bu siparistutar alanına kaydetmeliyim ama tip hatası veriyor.Ne yapmam lazım sizce..
durum biraz acil..

Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 30 Eyl 2007 11:02
Konum: Ankara

Re: (Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Mesaj gönderen Battosai » 17 Oca 2009 04:10

Ne yapacaksın tipini değiştireceksin... :twisted: Bu kadar basit. Yani yaptığın işe göre biraz acemice bir soru olmuş.
Tutar alanı parasal bir alan olduğu için alanı decimal,float,currency,real gibi tiplerde tanımlamalısın

serkan
Üye
Mesajlar: 666
Kayıt: 09 Tem 2003 11:08
Konum: bursa

Re: (Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Mesaj gönderen serkan » 17 Oca 2009 09:56

hocam o kadarını bende düşündümde, convert.ToNumeric diye bir fonksiyon yok.textbox1 deki 49,99 luk değer doğal olarak string türünde covert.ToDouble(TextBox1.Text) şeklinde denemiştim yine tip hatası vermişti..

Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 07:56
Konum: yine yeniden Ankara ^_^

Re: (Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Mesaj gönderen unicorn64 » 17 Oca 2009 10:58

@battosai sanırım veritabanındaki alanın tipini değiştirmeyi kasdetmiş.
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim

serkan
Üye
Mesajlar: 666
Kayıt: 09 Tem 2003 11:08
Konum: bursa

Re: (Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Mesaj gönderen serkan » 17 Oca 2009 11:15

onu malesef yapamam çünkü program paket bir program tipi değiştirirsem program hata verecek.Yani program kendi yazılımımız değil malesef..

yalnız şöyle bir durum var
49,99 değilde 49.99 şeklinde yazılırsa bunu kaydediyor. fakar datalistden aldığım için değeri
49.99 olarak alamıyorum..

Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4319
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: (Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Mesaj gönderen aslangeri » 18 Oca 2009 01:21

s.a.
serverin bölgesel ayarları ile ilgil bir durum.
uygulamanızda ondalık ayracını , bindelik ayracını kontrol edebiliyorsanız onları kontrol etmeyi deneyin.
kola ygelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim

serkan
Üye
Mesajlar: 666
Kayıt: 09 Tem 2003 11:08
Konum: bursa

Re: (Numeric,28,9) şeklinde tanımlı bir fielda veri kaydetmek..

Mesaj gönderen serkan » 18 Oca 2009 10:21

madem virgülden hoşlanmadı bu numeric alan bende çözümü kayıttan önce;

Kod: Tümünü seç

string s = Regex.Replace(gvr.Cells[2].Text, @",", ".");
komutu ile replace yaparak çözdüm. döngü ile Gridview1 deki kayıtların tümünü sipariş tablosuna kaydettiriyorum.
(gvr.Cells[2].Text) gridde tutar alanının bulunduğu yer oluyor burdaki değerde virgülleri nokta yapıp s değişkenine atıp
insert into komutunda s değişkeninden kaydı yaptırıyorum.

yukardaki kod başkalarınada lazım olabilir diye yazıyorum fakat bunu kullanabilmek için

Kod: Tümünü seç

using System.Text.RegularExpressions;
kodunun eklenmesi gerekmekte..
En son serkan tarafından 18 Oca 2009 05:28 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 30 Eyl 2007 11:02
Konum: Ankara

Re: (Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Mesaj gönderen Battosai » 18 Oca 2009 12:12

Burda garip olan numeric alan tipi için ondalık ifade kabul etmesi MsSQL adlandırmaları aldatıcı gibi Numeric görünce sadece rakam kabul eden bir alan olması icap ediyor tanıma göre...bu yüzden değiştir demiştim...Çözüm için doğru yöntem seçmişsin bende MySQL için virgül nokta değişimi yapıyorum Ondalık ayraç olarak nokta(.) kullandıkları için böyle bir sorun çıkıyor...Fakat ben parasal değerin binlik ayracı olarak nokta ondalık için virgül kullanmak istediğimden değeri replace ile değiştiriyorum...Sen daha basit bir çözüm istiyorsan açılışta thousandseparator:=',' ve decimal içinde '.' tanımlarsan replace yapman gerekmeyecektir....

serkan
Üye
Mesajlar: 666
Kayıt: 09 Tem 2003 11:08
Konum: bursa

Re: (Numeric,28,9) şeklinde tanımlı fir fielda veri kaydetmek..

Mesaj gönderen serkan » 18 Oca 2009 05:24

windows uygulaması olsa dediğin gibi açılışta decimalseparatoru kullanırım ama web uygulamalarında varmı bilmiyorum benimde aklıma ilk o geldi ama bulamayınca replace ile işi çözdük...
yardım ve fikirleriniz için teşekkürler.

Cevapla