Forum » Programiranje » Ničle v SQl tabeli
Ničle v SQl tabeli
mbscorpio69 ::
Živjo!
Kaj lahko naredim, da mi se ničle ne shranijo avtomatski v celicah?
Seveda, če ne vpišem nič.
Uporabljam C# in SQl server.
Hvala.
Kaj lahko naredim, da mi se ničle ne shranijo avtomatski v celicah?
Seveda, če ne vpišem nič.
Uporabljam C# in SQl server.
Hvala.
no comment ::
Če jih ne boš vpisal, se ti ne bodo shranile.
(seveda je to generalni odgovor; mogoče dobiš bolj podrobno razlago, če se malo potrudiš pri opisu tvojega primera?)
(seveda je to generalni odgovor; mogoče dobiš bolj podrobno razlago, če se malo potrudiš pri opisu tvojega primera?)
Zgodovina sprememb…
- spremenilo: no comment ()
MUC ::
Verjetno imaš stolpec označen kot recimo INT in brez omogočene vrednosti NULL. V tem primeru se ti vedno zapiše kot 0.
no comment ::
kuall ::
za to zgoraj mora imet sql polje še default (0).
Ti bi rad, da se ti zapiše NULL namesto 0. Uporabi to v C#:
int? nFirstRow
cmd.Parameters.AddWithValue("@nFirstRow", (object)nFirstRow ?? DBNull.Value);
pomeni to:
če je nFirstRow null zapiši NULL v sql.
ali to:
int nFirstRow
cmd.Parameters.AddWithValue("@nFirstRow", nFirstRow==0 ? DBNull.Value:nFirstRow);
največje vprašanje je v kakšnih CELICAH? mora bit kakšna nastavitev na tej kontroli, karkoli že uporabljaš.
Ti bi rad, da se ti zapiše NULL namesto 0. Uporabi to v C#:
int? nFirstRow
cmd.Parameters.AddWithValue("@nFirstRow", (object)nFirstRow ?? DBNull.Value);
pomeni to:
če je nFirstRow null zapiši NULL v sql.
ali to:
int nFirstRow
cmd.Parameters.AddWithValue("@nFirstRow", nFirstRow==0 ? DBNull.Value:nFirstRow);
največje vprašanje je v kakšnih CELICAH? mora bit kakšna nastavitev na tej kontroli, karkoli že uporabljaš.
Zgodovina sprememb…
- spremenilo: kuall ()
mbscorpio69 ::
Hotu sem dodati nekaj slikic ampak mi ne gre.
Ne želim niti 0 niti Null.
Izhod je v DataGridView.
Ne želim niti 0 niti Null.
Izhod je v DataGridView.
Invictus ::
mbscorpio69 je izjavil:
Živjo!
Kaj lahko naredim, da mi se ničle ne shranijo avtomatski v celicah?
Seveda, če ne vpišem nič.
Uporabljam C# in SQl server.
Hvala.
Pravilno nastavit bazo...
No default values...
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
DeeJay ::
Če je INT maš opcijo samo 0 ali NULL kokr vem.
Če hočeš prazen string rabiš met polje kot CHAR ali VARCHAR al karkoli že ma MSSQL.
Če hočeš prazen string rabiš met polje kot CHAR ali VARCHAR al karkoli že ma MSSQL.
kuall ::
mbscorpio69 je izjavil:
Hotu sem dodati nekaj slikic ampak mi ne gre.
Ne želim niti 0 niti Null.
Izhod je v DataGridView.
Vse se da, samo ti si len pa tu sprašuješ z nejasnimi vprašanji.
Takole je pogosto, če se pogovarjaš s kakšno stranko. Preden razčistiš kaj bi rada že zgubiš živce, je kar umetnost potrepežljivo do konca speljat komunikacijo.
kuall ::
no comment ::
showsover ::
Pravilno nastavljena baza je taka, da imajo vsa polja default vrednosti. Potem se izogneš temu, da moraš delat tole:
isnull (a,0) = isnull (b,0) ampak lahko brezskrbno narediš to a=b, to tudi potem uporablja indexe in dela hitreje.
Ne, odvisno je od zasnove podatkovnega modela, 0 pomeni vrednost, NULL pomeni brez vrednosti. Se pozna v kalkulacijah po vertikali.
smacker ::
OP: V bazi ne moreš imeti 'nič'. NULL nakazuje, da je tam prazno polje. Pri izpisu pa lahko nastaviš, da se namesto NULL izpiše karkoli pač želiš.
Če urejaš podatke v datagridview, je treba pred zapisom v bazo poskrbet še za obratno pretvorbo, želeni niz nastaviš nazaj v NULL.
Ostali: če nimate pojma, bodite raje tiho.
foreach (DataGridViewRow dr in dataGridView1.Rows) { if (!dr.IsNewRow) { for (int c = 0; c <= dr.Cells.Count - 1; c++) { if (dr.Cells[c].Value == null) { dr.Cells[c].Value = "NULL TEXT"; //Tu lahko daš "", ali "-", ali "/", karkoli pač želiš da se izpiše namesto NULL } } } }(vir: https://stackoverflow.com/questions/288...
Če urejaš podatke v datagridview, je treba pred zapisom v bazo poskrbet še za obratno pretvorbo, želeni niz nastaviš nazaj v NULL.
Ostali: če nimate pojma, bodite raje tiho.
showsover ::
ok, v tvojem primeru je mogoče null enak DBNull.Value, če je prebran iz baze, sam null ni zadosten...
Zgodovina sprememb…
- spremenilo: showsover ()
kuall ::
Ne, odvisno je od zasnove podatkovnega modela, 0 pomeni vrednost, NULL pomeni brez vrednosti. Se pozna v kalkulacijah po vertikali.
A misliš na avg() funkcijo?
Jaz osebno pustim kar null svobodo, če pa naletim na bazo, kjer imajo vse vrednosti default vrednosti sem vesel takega dizajna, ker poenostavi stvari.
Seveda ti null tudi prav pride, ko hočeš npr namesto 0 imeti prazno celico. redko prav pride, se da brez null lepo živet, null večinoma samo komplicira stvari.
showsover ::
Mislim na katerekoli agregatne funkcije, če vzameš zalogo vrednosti [0,1,2,NULL] dobiš drugače kot [0,1,2,0] za katerekoli agregatno funkcijo.
Včasih kakšnih stvari ne smeš poenostaviti, NULL je čisto legitimno stanje v bazi in sicer pomeni NI PODATKA.
Recimo primer, [ime,starost]: ['gtfo',25+], ['kuall',null], ker pač ne vemo kuallove starosti.
Velikokrat NE SMEŠ poenostaviti iskanj, odvisno je sicer od problema, ki ga rešuješ.
Včasih kakšnih stvari ne smeš poenostaviti, NULL je čisto legitimno stanje v bazi in sicer pomeni NI PODATKA.
Recimo primer, [ime,starost]: ['gtfo',25+], ['kuall',null], ker pač ne vemo kuallove starosti.
Velikokrat NE SMEŠ poenostaviti iskanj, odvisno je sicer od problema, ki ga rešuješ.
Zgodovina sprememb…
- spremenilo: showsover ()
kuall ::
Lahko daš za starost -1 ali 0 in v kalkulacijo daš where age not -1 pa je. brez null se da čist lepo žvet.
showsover ::
Kuall, glej, NULL je DB standard v bazah, starih vsaj 50 let, -1 ne pomeni NI PODATKA, -1 pomeni -1, 0 ne pomeni NI PODATKA, 0 pomeni 0. Če se ti še nisi srečal, kjer je NULL legitimna in pomembna 'nevrednost', to ne pomeni, da si srečal vse primere vseh podatkovnih baz, podatkovnih modelov, nivoja podatkovnega dostopa ali nivoja poslovne logike, ki NULL razume zelo drugače kot 0. Če še nisi naletel na takšno obdelavo podatkov, morda še boš, če pa ne boš, smo pa drugi, menda nismo ravno od včeraj in naše ure so precej drage.
kuall ::
Tudi ti nisi srečal situacije, kjer bi null nujno rabil, drugače mi ne bi dajal slabega primera s starostjo. -1 pomeni null pri letih. Spomni se boljšega primera, če si zmožen?
showsover ::
Kuall, kar dajva zaključit, tvoje argumentacije so na nivoju junior engineerja, moje pa na nivoju konzultanta za rdbms in NULL je validno stanje v bazi, ki označuje NI PODATKA, ker ga ni bilo možno dobiti, ne smemo pa ničesar domnevati. In če daš ti -1 v bazo, moraš -1 posebej obravnavati. Jaz se odjavljam, ker s takšnimi debatami res ne bova prišla naprej, dokler si vsaj ne prebereš minimalnih osnov v tem smislu. Od tu naprej si prepuščen svojim domnevam.
Zgodovina sprememb…
- spremenilo: showsover ()
no comment ::
Spomni se boljšega primera, če si zmožen?
Datum smrti je samo en primer. Pa jih je še tisoč. Ko boš delal kakšno podatkovno skladišče in boš moral za vsak vir vedet katero vrednost si je tam en čoravi kuall zamislil namesto nedoločene vrednosti in to upoštevati v analitičnih orodjih...
Poskusi se ukvarjat še s kakšno drugo stvarjo. Jaz mislim, da boš ugotovil, da informatika ni nujno tvoje močnejše področje... Resno.
kuall ::
tak majster pa se še vedno nisi zmožen spomniti enega dobre primera, kjer bi ti null prav prišel.
null je eksotika, ravno tako kot je eksotika int? v c#. eduina razlika je, da nam sql to eksotiko rine pred nos na vsakem koraku, medtem ko v C# je lepo skrita zadaj in jo ponucaš na vsakih x let.
null je eksotika, ravno tako kot je eksotika int? v c#. eduina razlika je, da nam sql to eksotiko rine pred nos na vsakem koraku, medtem ko v C# je lepo skrita zadaj in jo ponucaš na vsakih x let.
Zgodovina sprememb…
- predlagal izbris: Greg91 ()
showsover ::
Kuall, pa saj sem ti napisal, kaj pa vem, kakšne primere, ki bi jih TI (prav ti, Kuall) razumel, da pomeni NI PODATKA.
Ker če te koncept NI PODATKA ni jasen v primerjavi z 0 ali -1, veš ZELOOOO malo.
Tako zelo malo, da je tvoje mnenje o čemerkoli v tem smislu praktično nepomembno.
Ker če te koncept NI PODATKA ni jasen v primerjavi z 0 ali -1, veš ZELOOOO malo.
Tako zelo malo, da je tvoje mnenje o čemerkoli v tem smislu praktično nepomembno.
kuall ::
btw ko delaš avg ti funkcija lepo napiše opozorilo, da bo null value spuščena iz kalkulacije. opozorilio v smislu, da ne veš kaj delaš in da bi moral dati where x is not null, če bi hotel pisat točno kodo.
Če jih je tisoč potem ne boš imel problema se spomniti enega namesto pisat debilnih žaljivk?
no comment je izjavil:
Spomni se boljšega primera, če si zmožen?
Datum smrti je samo en primer. Pa jih je še tisoč.
Če jih je tisoč potem ne boš imel problema se spomniti enega namesto pisat debilnih žaljivk?
Zgodovina sprememb…
- spremenilo: kuall ()
Utk ::
Koliko denarja imaš? Je res vseeno ali 1, 0, -1 ali null?
Null je najpogostejša vrednost. Če je zate eksotika, se je res za vprašat kaj pa kako delaš.
Haha, to bi bilo smeha, da moraš še za vsak stolpec imet eno opombo zraven katera vrednost je za nekoga null. Čeprav to vrednost že imamo v standardu. In reče se ji null.
null je eksotika
Null je najpogostejša vrednost. Če je zate eksotika, se je res za vprašat kaj pa kako delaš.
Ko boš delal kakšno podatkovno skladišče in boš moral za vsak vir vedet katero vrednost si je tam en čoravi kuall zamislil namesto nedoločene vrednosti in to upoštevati v analitičnih orodjih.
Haha, to bi bilo smeha, da moraš še za vsak stolpec imet eno opombo zraven katera vrednost je za nekoga null. Čeprav to vrednost že imamo v standardu. In reče se ji null.
Zgodovina sprememb…
- spremenil: Utk ()
Zimonem ::
Na pamet ugibat kakšen je konkreten problem je dokaj sholastično. Naj pripelje konja pa bomo prešteli zobe. Francis Bacon.
no comment ::
showsover ::
Poskušajte gledati konstruktivno na zadevo, tudi mene kar strese, ko vidim, kakšna vprašanja so postavljena, ker niso koncepti jasni. Ampak tako to pač je, kdor želi izobraževati, naj, jaz sem dal link na čisto enostavno razlago, ki je bil, izgleda, spregledan.
Naj Kuallu še nekdo razloži NULL vrednost v primeru primary key in foreign key values, če ni preveč zahtevno, čeprav se da to vse izguglat v 1 sekundi.
Naj Kuallu še nekdo razloži NULL vrednost v primeru primary key in foreign key values, če ni preveč zahtevno, čeprav se da to vse izguglat v 1 sekundi.
Zgodovina sprememb…
- spremenilo: showsover ()
kuall ::
no comment je izjavil:
Sem ti že napisal. Ne znaš brat al je šlo takoj v /dev/null?Napisal si podatkovno skladišče. Kaj naj bi to pomenilo? Ali moram znati brati iz tvoje betice?
Tody ::
Rdbms je baza, podatkovno skladišče pa so urjeni podatki za namen analitike. Jebes to ce osnove niso jasne pa potem se joka zakaj ni večjih plač. Int je posatkovni tip v mssql bazi misljen kot stevilke ki imajo celo vrednost. Sveda je najlazje vse v varchar dat samo potem me ne vprasat kako se sesteva zadeva (seveda tako da napises cast in porabis vec sredstev ker te itak boli kurac ker se bo z optimizacijo ukvarjal kdo drug)
no comment ::
showsover ::
Ok, distinkcijo data-warehouse vs data-base je Tody še lepše zapisal, kar pa bo verjetno Kualla, dokler ne bo investiral nekaj časa v razširjanje horizontov (kar ni nič sramotnega), verjetno še bolj zmedla.
kuall ::
no comment je izjavil:
Napisal sem "datum smrti".
Zlahka bi za neznan datum smrti uporabili: select CONVERT (date, '9999-01-01')
Boš rekel, kaj pa bo leta 9999, bodo morali na novo pisat kodo?
Saj letnice 10000 v sqlu sploh ne moreš zapisat, vrne napako. Do takrat bodo že vse preuredili.
Ali pa datum DO. Če bi uporabili 9999 namesto null bi prišparali veliko dela, ko moraš v kodi delat tole: between dFrom and isnull (dTo, '9999-1-1') ali or stavke. saj se menda zavedaš, da ti tale isnull zjebe indexe in koda dela počasneje? or tudi upočasni.
zato pravim, da null večkrat škodi kot koristi. koda mora biti velikokrat zarad njega daljša, kot bi lahko bila.
za tiste tvoje analitike pa bi imel lahko dodatno bit kolono: isValFilled. ali pa drugače strukturiraj tabelo.
Še vedno nisi zmožen najti dobrega primera, kjer brez null ne bi mogli živeti. Null je eksotika, ki večkrat škodi kot koristi po mojih izkušnjah.
showsover ::
no comment ::
Zlahka bi za neznan datum smrti uporabili: select CONVERT (date, '9999-01-01')
Zlahka bi, ja. Zlahka bi zapisal tudi '99991231' ali pa '30990101', sej kdo pa bo živel tako dolgo. Če ne vidiš koliko problemov taki arbitrarni defaulti prinesejo, to pomeni samo to, da kaj dosti podatkov še nisi premetaval. Se da razumet.
Da pa ne uspeš spregledat in goniš svoje...
Utk ::
Pa je res nek datum med nekim datumom in null? Je res null maksimalen datum? Kaj pa če je minimalen?
showsover ::
Še ta zanimivost (je zanimivost za tiste, ki ne poznajo), je NULL dovoljen v FK polju ali ne in če je, kaj pomeni?
Kaj pa recimo primer v samosklicevalni tabeli in v polju parentid (ne) vsebuje null?
Auch, noro, a, Kuall?
:)
Kaj pa recimo primer v samosklicevalni tabeli in v polju parentid (ne) vsebuje null?
Auch, noro, a, Kuall?
:)
no comment ::
Seveda je. Kuall bi nas pa prisili, da bi v vse FK tabele morali vstavljati poseben zapis za 'pojmanimam'.
showsover ::
Bodimo konstruktivni, morda pa bo Kuall rekel sam pri sebi 'Jebenti, sem ga posral, fantje pa morda vseeno nekaj vejo, dam še jaz to malo raziskat'?
kuall ::
Še ta zanimivost (je zanimivost za tiste, ki ne poznajo), je NULL dovoljen v FK polju ali ne in če je, kaj pomeni?
Kaj pa recimo primer v samosklicevalni tabeli in v polju parentid (ne) vsebuje null?
Auch, noro, a, Kuall?
:)
NOT NULL FK polje enostavno tako rešiš, da v Primary key vstaviš vrstico, ki pomeni "null", npr prazen string, max datum itd. Tako je itak vse bolj razumljivo in enostavno. Še vedno niste zmožni najti dobrega primera. Razmišljate kot tipični programerčki, ki bi samo komplicirali stvari. Ni čudno, da pol nič ne dela.
Zgodovina sprememb…
- predlagal izbris: Greg91 ()
Sgt. Lipnikar ::
Še ta zanimivost (je zanimivost za tiste, ki ne poznajo), je NULL dovoljen v FK polju ali ne in če je, kaj pomeni?
Kaj pa recimo primer v samosklicevalni tabeli in v polju parentid (ne) vsebuje null?
Auch, noro, a, Kuall?
:)
NOT NULL FK polje enostavno tako rešiš, da v Primary key vstaviš vrstico, ki pomeni "null", npr prazen string, max datum itd. Tako je itak vse bolj razumljivo in enostavno. Še vedno niste zmožni najti dobrega primera. Razmišljate kot tipični programerčki, ki bi samo komplicirali stvari. Ni čudno, da pol nič ne dela.
Ta je šele dobra...bogi tisti, ki mora za tabo vzdrževat tako bazo ali pa backend.
showsover ::
Kuall, ok, vse si povedal, izgubljen primer si, pusti podatkovne baze, to očitno res ni zate.
kuall ::
Jaz argumentiram vi pa spuščate debilne žaljivke, to je do zdaj edina dokazana razlika med nami. Ponavadi se k žaljivkam zatečejo zgube. Na slo techu je polno zgub vidim.
To pišem zato, ker sem imel priliko delati z bazami, kjer so imela vsa polja not null (skoraj vsa pa še tista, ki niso imela bolje, da bi imela) in takimi, kjer so bila vsa polja null. bolj prijetno je bilo delati z bazo, kjer so bila polja not null.
To pišem zato, ker sem imel priliko delati z bazami, kjer so imela vsa polja not null (skoraj vsa pa še tista, ki niso imela bolje, da bi imela) in takimi, kjer so bila vsa polja null. bolj prijetno je bilo delati z bazo, kjer so bila polja not null.
Zgodovina sprememb…
- predlagal izbris: Greg91 ()
showsover ::
Kuall, potem si pač delal z enostavnimi bazami brez posebnih relacij med podatki, verjetno za web, kjer je bil glavni problem pisanje enostavnih filtrov. Na tvoje veselje (v bistvu, žalost), se podatkovni modeli ne končajo pri tako enostavnih postavitvah in neki vpeljevanjih dodatnih polj, ki označujejo, ali je neko drugo vsebuje pomensko vrednost ali ne; NULL obstaja z razlogom in ne gre samo za tvoj convenience pisanja enostavnih filtrov (namreč, nisi izkazal, da ti je kaj več jasno v relacijskih bazah), ker sicer ti ni jasno in te moti, ker pač moraš dodati še kakšen OR nekje. Namreč, tvoje razmišljanje (na osnovi tvojih izraženih izkušenj) kaže predvsem na to, da bi rad vozil avion, pa še komaj veš, kako se vrata na avtu zaprejo. Kdo je zguba ali ne, kažejo predvsem bilance.
PS: Se opravičujem, ker sem domneval, da se te da kaj naučiti, bom sledil nasvetu ostalih.
PS: Se opravičujem, ker sem domneval, da se te da kaj naučiti, bom sledil nasvetu ostalih.
Zgodovina sprememb…
- spremenilo: showsover ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Registrska označba NULL lastniku povzroča težave in stroškeOddelek: Novice / Ostale najave | 6157 (3056) | MrStein |
» | SQL vprasanje (strani: 1 2 )Oddelek: Programiranje | 8369 (5048) | BivšiUser2 |
» | PostgreSQL pomočOddelek: Programiranje | 2511 (2004) | Mato989 |
» | Nova različica podatkovne baze PostgreSQL 9.5 prinaša obilico novosti (strani: 1 2 )Oddelek: Novice / Ostala programska oprema | 17712 (14578) | McAjvar |
» | MS Access (strani: 1 2 )Oddelek: Programiranje | 7410 (5468) | travica |