Zmena dat pri nacitani s sql a vlozeni do datagrid

Programovacie jazyky, rady, poradňa...
kotlas666
Light Star
Light Star
Príspevky: 238
Registrovaný: 27 sep 2006, 12:48

Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa kotlas666 »

Ahojte
Je vlasne taka moznost? Mam hodnoty na sql servere ktore obsahuju raz ciarku a raz bodku v urcitom stlpci a potreboval by som tie hodnoty zmenit na bodky.... Sql databazu nezmenim....vb.net
Dakujem za rady...
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa harrison314 »

A to mas cisla ulozene ako text?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa audiotrack »

áno, je. Vždy sa dá znak zameniť za znak. Buď to priamo v sql dotaze (http://victoriayudin.com/2013/03/11/cha ... g-replace/) alebo pri vypisovaní do toho datagridu nejaký serverovým alebo klientským jazykom (php, js... nenapísal si v čom robíš)
kotlas666
Light Star
Light Star
Príspevky: 238
Registrovaný: 27 sep 2006, 12:48

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa kotlas666 »

robim to vo vs2015 a s vb.Terajsi kod:
Try
connection.Open()
dataadapter.Fill(DefautneZobrazenie, "Vyhladavac")
connection.Close()
FillDataGridView(DefautneZobrazenie)
Catch ex As SqlException
MsgBox(ex.Message)
connection.Close()
End Try

Private Sub FillDataGridView(DefautneZobrazenie)

With DataGridView1
.DataSource = DefautneZobrazenie
.DataMember = "Vyhladavac"
.
.
.
end with

Este pred tymto naplnenim do datagridview by som chcel :
1) zamenit , za . u urcitych stlpcoch
2) naformatovat stlpec ako double lebo filtrujem cisla ktore su <,>,= a filtruje mi to hovadiny.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa audiotrack »

v linku vyššie som ti dal ako použiť replace, takže to dáš na všetky tie stlpce kde chceš meniť čiarky za bodky. Teda select replace(nazov_stlpca, ',', '.') as nazov_stlpca_s_bodkou from nazov tabulky where ...
a rovnako tak sa dá aj pretypovať: http://dev.mysql.com/doc/refman/5.6/en/ ... ction_cast akurát že v mysql nie je double, ale decimal
kotlas666
Light Star
Light Star
Príspevky: 238
Registrovaný: 27 sep 2006, 12:48

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa kotlas666 »

audiotrack napísal:v linku vyššie som ti dal ako použiť replace, takže to dáš na všetky tie stlpce kde chceš meniť čiarky za bodky. Teda select replace(nazov_stlpca, ',', '.') as nazov_stlpca_s_bodkou from nazov tabulky where ...
a rovnako tak sa dá aj pretypovať: http://dev.mysql.com/doc/refman/5.6/en/ ... ction_cast akurát že v mysql nie je double, ale decimal
Dik
Funguje to....ALE.
Potrebuje pomoc zo zapisom tohto
Select " & Stlpce & " from [Databaza náradia] where [Skupina unifikacie text] = 'Stopkový nôž'"
a sojit to s
Select replace(Höhe, ',', '.') from [Databaza náradia] where [Skupina unifikacie text] = 'Stopkový nôž'"

(& Stlpce & = obsahuje cca 8 stlpcou a preto som to dal do premennej)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa audiotrack »

v tej svojej premennej Stlpce si nazov toho stlpca ktorý obsahuje také hodnoty nahraď nahraď tým replacom
kotlas666
Light Star
Light Star
Príspevky: 238
Registrovaný: 27 sep 2006, 12:48

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa kotlas666 »

audiotrack napísal:v tej svojej premennej Stlpce si nazov toho stlpca ktorý obsahuje také hodnoty nahraď nahraď tým replacom
Dik...
Pritom druhom pripade mi stale pise ze nemozem konvertovat varchar do numericu.... toto mu mam ako vysvetlit ze to tak potrebujem ?
Zapis: CAST(Radius as decimal(8,2)) Radius alebo CONVERT(DECIMAL(10,5),Radius)
Este doplnim ze na servere v stlpci 'Radius' su ulozene ciselne hodnoty alebo priazdny riadok ale ziadny text.

Takto to vyzera ked zapnem filter Zostupne:
Radius
9.300
85.000
85.000
8.600
8.100
8.000
75.000
7.900
60.000
60.000
60.000
60.000
6.500
6.500
6.100
6.020
6.000
6.000
6.000
6.000
50.000
Fabo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6810
Registrovaný: 16 nov 2007, 17:23
Bydlisko: 's Chravenhache
Kontaktovať používateľa:

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa Fabo »

A nemal by si tam davat miesto 8,2 praveze 8.2? ked to castujes do numerickeho typu.

a ten filter ci jak to mam chapat, to zapinas kde, v nejakom GUI sql klientovi?
kotlas666
Light Star
Light Star
Príspevky: 238
Registrovaný: 27 sep 2006, 12:48

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa kotlas666 »

Fabo napísal:A nemal by si tam davat miesto 8,2 praveze 8.2? ked to castujes do numerickeho typu.

a ten filter ci jak to mam chapat, to zapinas kde, v nejakom GUI sql klientovi?
priamo v datagride po nacitani hodnot...ale nechapem ako mam docielit postupnost hodnot lebo ked si vsimnes postupnost je dodrzana len pri prvom cisle teda znaku v bunke...cize 9.3 < 85.0 ! Toto neviem zoradit a nechapem preco mi to tak robi...mozno ze je to varchar ale preco potom mi to nejde konvertovat na decimal ???

http://tinypic.com/r/fup6cm/9
Fabo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6810
Registrovaný: 16 nov 2007, 17:23
Bydlisko: 's Chravenhache
Kontaktovať používateľa:

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa Fabo »

takze ak chapem spravne, tak v tom vb.net nejakom grafickom objekte.

Ano, kedze to je varchar, tak to urobi podla abecedy. Najprv to musis previest cele na cislo, na urovni databazy.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa audiotrack »

Fabo napísal:A nemal by si tam davat miesto 8,2 praveze 8.2? ked to castujes do numerickeho typu.

a ten filter ci jak to mam chapat, to zapinas kde, v nejakom GUI sql klientovi?
nie, má tam byť čiarka. Nie je to číslo 8.2 ktoré chce prevádzať. Prevádza hodnotu stlpca radius. Tie čísla 8 a 2 sú parametre funkcie decimal, a hovoria že to chce na 8 miest, a 2 desatinné
kotlas666
Light Star
Light Star
Príspevky: 238
Registrovaný: 27 sep 2006, 12:48

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa kotlas666 »

..takze na urovni databaze to nejde bo tie informacie sa skladaju prastrasne a programator mi povedal ze dotoho on nepojde... :-( Este ma napadlo to ze ked dostavam tie hodnoty do stlpca v datagridview tak kazdu jednu hodnotu vlastne zobrat z databaze previest do double(decimal) a vlozit do stlpca v tom mojom datagridview. Moze byt?

//autoeditácia príspevku (08 Dec 2015, 21:16)
Hotovo...vyriesene....vytvoril som si double premenu po naplneni datagridu a hodnotu po hodnote som krmil premenu a ta automaticky konvertovala hodnotu na pozadovanu a hnet som ju aj poslal naspet do datadridu a povodnu som prepisal...jednoduche....ale ked to nepouzivate :-( .....dakujem za rady...
Fabo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6810
Registrovaný: 16 nov 2007, 17:23
Bydlisko: 's Chravenhache
Kontaktovať používateľa:

Re: Zmena dat pri nacitani s sql a vlozeni do datagrid

Príspevok od používateľa Fabo »

audiotrack napísal: nie, má tam byť čiarka. Nie je to číslo 8.2 ktoré chce prevádzať. Prevádza hodnotu stlpca radius. Tie čísla 8 a 2 sú parametre funkcie decimal, a hovoria že to chce na 8 miest, a 2 desatinné
Sorry, podmieneny reflex... s bodkou a ciarkou som uz riesil strasne vela problemov, v poslednej dobe napriklad presne v konverzii char to double. Akurat teda nie v SQL.
Napísať odpoveď