torstai 17. joulukuuta 2015
tiistai 15. joulukuuta 2015
ASP.NET MVC5 - Ajaxilla modal- ikkunan sisällön kirjoitus tietokantaan
tiistai 8. joulukuuta 2015
ASP.NET MVC5 - Hae Ajaxilla arvo tietokannasta
http://stackoverflow.com/questions/33733197/pass-value-to-a-textbox-using-mvc-5
<script type="text/javascript">
$(document).ready(function () {
$("#txtid").change(function () {
$.ajax({
url: '/CommissionsFinals/GetTarifa',
type: 'GET',
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: { clientID: $("#DDLCliente").val(), consultorID: $("#DDLConsultor").val() },
success: function (tarifa) {
//response(tarifa.
$('#txtid').val(tarifa).autocomplete
},
error: function () {
alert('Error!');
}
});
})
});
maanantai 7. joulukuuta 2015
ASP.NET MVC5 - JavaScriptillä EditorFor arvo toisesta EditorFor-kentästä
how-can-i-get-value-of-editorfor-and-assign-this-value-to-another-editorfor
$(document).ready(function () {
$("#projectName").blur(function(){
$("#identifier").val($(this).val());
alert($("#identifier").val())
});
});
keskiviikko 25. marraskuuta 2015
Dataseppä sponsoroi Rauskin koodikoulua
Rauskin koodikoulu on Rieska-Leader rahoitteinen yleishyödyllinen projekti, jonka kohderyhmänä 7-15 vuotiaan lapset ja nuoret. Dataseppä on mukana sponsoroimassa koodikoulun laitehankintoja!
keskiviikko 18. marraskuuta 2015
maanantai 2. marraskuuta 2015
MVC5 - Actionlink ulkoasu
Tässä esimerkki siitä, miten Html.Actionlink voidaan näyttää painikkeena:
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="@Resources.Save" class="btn btn-default" /> |
@Html.ActionLink("Vie taloyhtiö kohderekisteriin", "Create", "Condominiums", new { @class = "btn btn-default" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="@Resources.Save" class="btn btn-default" /> |
@Html.ActionLink("Vie taloyhtiö kohderekisteriin", "Create", "Condominiums", new { @class = "btn btn-default" })
</div>
</div>
torstai 20. elokuuta 2015
ASP.net MVC5 - Redirect and TempData
Milloin käytetään ViewBag, ViewData tai TempData ?
Kun käyttäjä halutaan ohjata Redirect:ä käyttäen sivulta toiselle, on hyvä käyttää apuna TempData.
ViewBag ja ViewData ominaisuudet tyhjenevät eli arvo on Empty sen jälkeen, kun on siirrytty yksi sivu eteenpäin. Jos halutaan palata esim. kaksi sivua taaksepäin, niin TempData:ssa säilyy tieto, jolla käyttäjä voidaan palauttaa.
Kun käyttäjä halutaan ohjata Redirect:ä käyttäen sivulta toiselle, on hyvä käyttää apuna TempData.
ViewBag ja ViewData ominaisuudet tyhjenevät eli arvo on Empty sen jälkeen, kun on siirrytty yksi sivu eteenpäin. Jos halutaan palata esim. kaksi sivua taaksepäin, niin TempData:ssa säilyy tieto, jolla käyttäjä voidaan palauttaa.
torstai 25. kesäkuuta 2015
ASP.net MVC5 - DefaultValue
Html- sivulla kentälle saa helposti asetettua oletusarvon esim. :
@Html.RequiredLabelFor(model => model.SUM)
@Html.EditorFor(model => model.SUM, new { htmlAttributes = new { @Value = 0.00 } })
@Html.ValidationMessageFor(model => model.SUM, "", new { @class = "text-danger" })
@Html.RequiredLabelFor(model => model.SUM)
@Html.EditorFor(model => model.SUM, new { htmlAttributes = new { @Value = 0.00 } })
@Html.ValidationMessageFor(model => model.SUM, "", new { @class = "text-danger" })
tiistai 23. kesäkuuta 2015
TortoiseHg - .hgignore
Käytän Visual Studio Community 2013 versiota. Versiohallintana on TortoiseHg.
Kävipä eräänä päivänä, että lähdin muuttamaan .hgignore tiedoston nimeä.. muuttaminen takaisin entiseksi ei sitten onnistunutkaan windowsin tiedostojen hallinnan kautta.
Avuksi tuli tämä ohje.
Käyttämilleni ohjelmaversiolle sopiva .hgignore versiohallintaan on:
Kävipä eräänä päivänä, että lähdin muuttamaan .hgignore tiedoston nimeä.. muuttaminen takaisin entiseksi ei sitten onnistunutkaan windowsin tiedostojen hallinnan kautta.
Avuksi tuli tämä ohje.
Käyttämilleni ohjelmaversiolle sopiva .hgignore versiohallintaan on:
############################################################
## Visual Studio 2013
############################################################
syntax: glob
## User-specific files
*.suo
*.user
*.sln.docstates
## Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
build/
bld/
[Bb]in/
[Oo]bj/
## Roslyn cache directories
*.ide/
## MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
## NUnit
*.VisualState.xml
TestResult.xml
## Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
## Chutzpah Test files
_Chutzpah*
## Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
## Visual Studio profiler
*.psess
*.vsp
*.vspx
## TFS 2012 Local Workspace
$tf/
## Guidance Automation Toolkit
*.gpState
## ReSharper Ignores
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
## JustCode
.JustCode
## TeamCity Ignores
_TeamCity*
## DotCover Ignores
*.dotCover
## NCrunch Ignores
_NCrunch_*
*.ncrunch*
.*crunch*.local.xml
## MightyMoose
*.mm.*
AutoTest.Net/
## Web workbench (sass)
.sass-cache/
## Installshield output folder
[Ee]xpress/
## DocProject Ignores
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
## Click-Once Ignores
publish/
## Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
*.pubxml
## Windows Azure Build Ignores
csx/
*.build.csdef
## Windows Store Ignores
AppPackages/
## RIA/Silverlight projects
Generated_Code/
## SQL Server Ignores
App_Data/*.mdf
App_Data/*.ldf
## Backup & Report Files when converting a solution
## Not required, we have mercurial!
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
## NuGet
packages/
## Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
## Microsoft Fakes
FakesAssemblies/
*.favdoc
## Miscellaneous Ignores
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
## Windows Ignores
$RECYCLE.BIN/
Thumbs.db
ehthumbs.db
Desktop.ini
maanantai 22. kesäkuuta 2015
ASP.NET MVC 5 - Conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value
Tässä hyödyllinen linkki päivämäärien käsittelyssä tulevaan virheeseen..
Itse ymmärsin asian lyhyesti sanottuna näin:
SQL server ja .NET käsittelevät DataTime arvoa eri tavoin ja. Jos .NET koodista viedään "tyhjä" päiväys tietokantaan, niin tulee ym. virheilmoitus. Ratkaisu on, että luodaan oletusarvot päivämäärille MVC5.net modelissa:
public class Offer
{
public Offer()
{
OfferValid = DateTime.Now;
ContractStartTime = DateTime.Now;
ContractEndTime = DateTime.Now;
}
...
[Display(Name = "OfferValid", ResourceType = typeof(Resources.Resources))]
public DateTime? OfferValid { get; set; }
[Display(Name = "ContractStartTime", ResourceType = typeof(Resources.Resources))]
public DateTime? ContractStartTime { get; set; }
[Display(Name = "ContractEndTime", ResourceType = typeof(Resources.Resources))]
public DateTime? ContractEndTime { get; set; }
Itse ymmärsin asian lyhyesti sanottuna näin:
SQL server ja .NET käsittelevät DataTime arvoa eri tavoin ja. Jos .NET koodista viedään "tyhjä" päiväys tietokantaan, niin tulee ym. virheilmoitus. Ratkaisu on, että luodaan oletusarvot päivämäärille MVC5.net modelissa:
public class Offer
{
public Offer()
{
OfferValid = DateTime.Now;
ContractStartTime = DateTime.Now;
ContractEndTime = DateTime.Now;
}
...
[Display(Name = "OfferValid", ResourceType = typeof(Resources.Resources))]
public DateTime? OfferValid { get; set; }
[Display(Name = "ContractStartTime", ResourceType = typeof(Resources.Resources))]
public DateTime? ContractStartTime { get; set; }
[Display(Name = "ContractEndTime", ResourceType = typeof(Resources.Resources))]
public DateTime? ContractEndTime { get; set; }
torstai 28. toukokuuta 2015
Dataseppä jakoi diplomit ensimmäisille koodikoululaisille
On toukokuu ja koulujen päättäjäisten aika. Dataseppäkin jakoi todistuksia koululaisille - jo ennen suvivirren veisuuta. Kyseessä oli keväällä 2015 järjestetyt koodikoulut Raudaskosken koululla.
Raudaskylän kyläyhdistys on käynyt neuvotteluja Koodikoulujen jatkosta Raudaskoskella, ja hankehakemus Rieska-Leaderiin aiheen puitteissa on lähdössä. Lomien jälkeen olemme viisaampia siinä, mitä syksy tuo tullessaan koodikoulujen osalta :)
Mutta koodaus jatkuu, se on varmaa!
Raudaskylän kyläyhdistys on käynyt neuvotteluja Koodikoulujen jatkosta Raudaskoskella, ja hankehakemus Rieska-Leaderiin aiheen puitteissa on lähdössä. Lomien jälkeen olemme viisaampia siinä, mitä syksy tuo tullessaan koodikoulujen osalta :)
Mutta koodaus jatkuu, se on varmaa!
maanantai 6. huhtikuuta 2015
ASP.NET MVC
Dataseppä aloittanut kahdessa uudessa projektissa, jossa ohjelmoinnin työkaluna ASP.NET MVC ja tietokantana SQL Server. Jatkossa blogiin tulee tietoa ja ongelmanratkaisua näihin tekniikoihin liittyen.
Kevään 2015 koodikoulut pidetty
Dataseppä kävi pitämässä koodikoulut kaikille Raudaskosken koulun
luokille (lk 1-6). Iloisia ilmeitä näkyi paljon, kun lapset tekivät
ensimmäiset tietokoneohjelmansa Turtle-roy:lla. Jokainen koulun oppilas
ja opettaja pääsi koodikoulun tavoitteeseen, eli sai luotua jotain
koodaamalla. Myös se tuli todistettua, että koodata osaa jokainen, joka
haluaa. Nämä lapset halusivat!!
maanantai 16. helmikuuta 2015
MS Access 2013 - Viitenumeron laskenta
Hyödyllinen koodinpätkä, jolla voi VBA-scriptissä laskea viitenumeron.
HUOM. Finanssialan keskusliitto (http://www.fkl.fi/teemasivut/sepa/tekninen_dokumentaatio/Dokumentit/kotimaisen_viitteen_rakenneohje.pdf) määrittää, että
viitenumeron pituus tulee olla vähintään 3 merkkiä + tarkiste.
Seuraava funktio laskee viitenumeron tarkisteen:
Function LaskeViite(ByVal numerosarja As String) As String
'Muuttujien esittely
Dim origSarja As String ' alkuperäinen numerosarja
Dim Laskuri As Byte ' laskuri
Dim sarjanPituus As Byte ' numerosarjan pituus
Dim tarkisteNumero As Byte ' tarkistenumero
Dim sarjanSumma As String ' numerosarjan summa
Dim kertoimet(2) As Byte ' kertoimet
Dim i As Integer
Dim j As Integer
Dim refnumber As String 'Viitenumero ilman jarjestelyä
Dim outstr As String
Dim UusiViite As String 'Viitenumero 5 mrk. ryhmissä
'muuttujien alustus
origSarja = numerosarja
sarjanPituus = Len(numerosarja)
Laskuri = 0
sarjanSumma = 0
tarkisteNumero = 0
kertoimet(0) = 7: kertoimet(1) = 3: kertoimet(2) = 1
'tarkistetaan annetun numerosarjan pituus ja sisältö
If (sarjanPituus < 1 Or sarjanPituus > 19) Or Not IsNumeric(numerosarja) Then GoTo Viite_Error
'käydään numerosarja lävitse
Do While Laskuri < sarjanPituus
sarjanSumma = sarjanSumma + (Mid(numerosarja, sarjanPituus - Laskuri, 1) * kertoimet(Laskuri Mod 3))
Laskuri = Laskuri + 1 'laskurin inkrementointi
Loop
'lasketaan tarkistenumero (sarjan summasta seuraava täysi kymmen - sarjan summa)
tarkisteNumero = (10 - (sarjanSumma Mod 10)) Mod 10
'palautetaan kutsuvaan aliohjelmaan alkuperäinen numerosarja ja tarkisteNumero
LaskeViite = origSarja & tarkisteNumero
refnumber = origSarja & tarkisteNumero
strlen = Len(origSarja & tarkisteNumero)
' / Järjestetään 5 merkin ryhmiin
If strlen > 5 Then
j = 0
For i = strlen To 1 Step -1
j = j + 1
If j = 6 Then
outstr = outstr & " "
j = 1
End If
outstr = outstr & Mid(refnumber, i, 1)
Next
UusiViite = ""
For i = Len(outstr) To 1 Step -1
UusiViite = UusiViite & Mid(outstr, i, 1)
Next i
LaskeViite = UusiViite
End If
Exit Function
Viite_Error:
On Error GoTo 0
Err.Raise vbObjectError + 1001, , "Viitenumeroksi laskettava numerosarja virheellinen"
LaskeViite = ""
Exit Function
End Function
HUOM. Finanssialan keskusliitto (http://www.fkl.fi/teemasivut/sepa/tekninen_dokumentaatio/Dokumentit/kotimaisen_viitteen_rakenneohje.pdf) määrittää, että
viitenumeron pituus tulee olla vähintään 3 merkkiä + tarkiste.
Seuraava funktio laskee viitenumeron tarkisteen:
Function LaskeViite(ByVal numerosarja As String) As String
'Muuttujien esittely
Dim origSarja As String ' alkuperäinen numerosarja
Dim Laskuri As Byte ' laskuri
Dim sarjanPituus As Byte ' numerosarjan pituus
Dim tarkisteNumero As Byte ' tarkistenumero
Dim sarjanSumma As String ' numerosarjan summa
Dim kertoimet(2) As Byte ' kertoimet
Dim i As Integer
Dim j As Integer
Dim refnumber As String 'Viitenumero ilman jarjestelyä
Dim outstr As String
Dim UusiViite As String 'Viitenumero 5 mrk. ryhmissä
'muuttujien alustus
origSarja = numerosarja
sarjanPituus = Len(numerosarja)
Laskuri = 0
sarjanSumma = 0
tarkisteNumero = 0
kertoimet(0) = 7: kertoimet(1) = 3: kertoimet(2) = 1
'tarkistetaan annetun numerosarjan pituus ja sisältö
If (sarjanPituus < 1 Or sarjanPituus > 19) Or Not IsNumeric(numerosarja) Then GoTo Viite_Error
'käydään numerosarja lävitse
Do While Laskuri < sarjanPituus
sarjanSumma = sarjanSumma + (Mid(numerosarja, sarjanPituus - Laskuri, 1) * kertoimet(Laskuri Mod 3))
Laskuri = Laskuri + 1 'laskurin inkrementointi
Loop
'lasketaan tarkistenumero (sarjan summasta seuraava täysi kymmen - sarjan summa)
tarkisteNumero = (10 - (sarjanSumma Mod 10)) Mod 10
'palautetaan kutsuvaan aliohjelmaan alkuperäinen numerosarja ja tarkisteNumero
LaskeViite = origSarja & tarkisteNumero
refnumber = origSarja & tarkisteNumero
strlen = Len(origSarja & tarkisteNumero)
' / Järjestetään 5 merkin ryhmiin
If strlen > 5 Then
j = 0
For i = strlen To 1 Step -1
j = j + 1
If j = 6 Then
outstr = outstr & " "
j = 1
End If
outstr = outstr & Mid(refnumber, i, 1)
Next
UusiViite = ""
For i = Len(outstr) To 1 Step -1
UusiViite = UusiViite & Mid(outstr, i, 1)
Next i
LaskeViite = UusiViite
End If
Exit Function
Viite_Error:
On Error GoTo 0
Err.Raise vbObjectError + 1001, , "Viitenumeroksi laskettava numerosarja virheellinen"
LaskeViite = ""
Exit Function
End Function
maanantai 9. helmikuuta 2015
VB.net - Tietojen vieminen Excel.CSV tiedostoon
Excelin CSV- muotoiseen tauluun voi viedä VB.net koodissa dataa. Esim. puolipisteellä erotellaan arvot toisistaaan. Jos haluat viedä yhteen Excel soluun dataa, joka sisältää puolipisteen, se on tehtävä näin hankalan näköisesti:
ExcelSolu = """" & EkaMuuttuja & ";" & TokaMuuttuja & """"
ExcelSolu = """" & EkaMuuttuja & ";" & TokaMuuttuja & """"
torstai 29. tammikuuta 2015
Datasepän koodikoulu 2015 alkanut
Dataseppä aloitti koodikoulun Raudaskosken koululla.
Koodikoulun tarkoitus on tutustuttaa koulun opettajat ja oppilaat (1-6 luokat) koodauksen alkeisiin, ja antaa mielikuva siitä, että koodauskin voi olla helppoa ja innostavaa. Opiskelussa käytetään apuna tarkoitusta varten tehtyä Blogia, josta löytyvät ohjeet alkuun pääsemiseksi (=dataseppa.wordpress.com).
Ensimmäiset koodikoulut opettajien ja 6- luokan kanssa on nyt tammikuussa 2015 käyty. Dataseppä sai hyvää palautetta sekä opettajilta, että oppilailta:
"Koodaus ei ole vaikeaa!",
"Madalsi kynnystä aloittaa ohjelmoinnin opetus, kun se tulee opetussuunnitelmiin 2016 syksyllä!".
Tästä on hyvä jatkaa! Seuraavat koodikoulut pidetään helmi-maaliskuussa, jotta kaikki Raudaskosken koulun oppilaat saavat kokeilla ohjelmointia. Tänä keväänä saatujen kokemusten avulla koodikoulun sisältöä kehitellään edelleen. Tavoitteenahan on aloittaa Raudaskosken koululla 1-6 luokkalaisille suunnattu Datasepän Koodauskerho syksyllä 2015. Siellä voidaankin sitten alkaa opetella vaikka robottien ohjelmointia, nettisivujen tekoa tai mobiiliohjelmointia.
Kaikki Datasepän koodikoulun suorittaneet tulevat saamaan diplomin:
Koodikoulun Raudaskosken koulun oppilaille tarjoaa yhdessä Dataseppä ja Raudaskylän kyläyhdistys.
Koodikoulun tarkoitus on tutustuttaa koulun opettajat ja oppilaat (1-6 luokat) koodauksen alkeisiin, ja antaa mielikuva siitä, että koodauskin voi olla helppoa ja innostavaa. Opiskelussa käytetään apuna tarkoitusta varten tehtyä Blogia, josta löytyvät ohjeet alkuun pääsemiseksi (=dataseppa.wordpress.com).
Ensimmäiset koodikoulut opettajien ja 6- luokan kanssa on nyt tammikuussa 2015 käyty. Dataseppä sai hyvää palautetta sekä opettajilta, että oppilailta:
"Koodaus ei ole vaikeaa!",
"Madalsi kynnystä aloittaa ohjelmoinnin opetus, kun se tulee opetussuunnitelmiin 2016 syksyllä!".
Tästä on hyvä jatkaa! Seuraavat koodikoulut pidetään helmi-maaliskuussa, jotta kaikki Raudaskosken koulun oppilaat saavat kokeilla ohjelmointia. Tänä keväänä saatujen kokemusten avulla koodikoulun sisältöä kehitellään edelleen. Tavoitteenahan on aloittaa Raudaskosken koululla 1-6 luokkalaisille suunnattu Datasepän Koodauskerho syksyllä 2015. Siellä voidaankin sitten alkaa opetella vaikka robottien ohjelmointia, nettisivujen tekoa tai mobiiliohjelmointia.
Kaikki Datasepän koodikoulun suorittaneet tulevat saamaan diplomin:
Koodikoulun Raudaskosken koulun oppilaille tarjoaa yhdessä Dataseppä ja Raudaskylän kyläyhdistys.
perjantai 23. tammikuuta 2015
Mikä on Entity Framework 6 ?
Entity framework
=
object-relational mapper (ORM) framework
To read or
update data, you can use ADO.NET directly by using classes such as SqlCommand, SqlDataReader, SqlDataAdapter, and DataSet. The recommended alternative is to let an
object-relational mapper (ORM) framework such as the Entity Framework handle the low-level code that interfaces with
an ADO.NET data provider. If you use ADO.NET directly, you have to manually
write and execute SQL queries. You also have to write code that converts data
from the database's format into objects, properties, and collections that you
can work with in code.
Suomeksi:
- koodiin ei tarvitse kirjoittaa SQL:ää ja komentaa ADO.NET:iä, vaan Entity frameworkista löytyy nopeampi tapa toteuttaa tauluun kirjoitus, luku, päivitys yms.
- vähempi koodia, vähemmän virhemahdollisuuksia
- kun koodi käyttää ORM:ää, niin kantojen siirto SQL serveriltä Windows Azure SQL databaseen onnistuu ilman muutoksia
- jos tuntuu, että SQL olisi tehokkaampi jossain erikoistapauksessa, niin: see Advanced Entity Framework Scenarios for an MVC Web Application on the ASP.NET site
Tilaa:
Blogitekstit (Atom)