Proper, al zeg ik het

Proper, al zeg ik het zelf. Deze vieze code: lvMain.Columns.Add(“Genre”,-1,HorizontalAlignment.Left);lvMain.Columns.Add(“Books”,-1,HorizontalAlignment.Left);getData.CommandText=”select * from qryGenres”;dr=getData.ExecuteReader();while (dr.Read()) {     ListViewItem li=        lvMain.Items.Add(dr.GetString(dr.GetOrdinal(“genre_name”)));    if (!dr.IsDBNull(dr.GetOrdinal(“books”)))     {        li.SubItems.Add(dr.GetInt32(dr.GetOrdinal(“books”)).ToString());    }     else     {        li.SubItems.Add(“-“);    }}dr.Close(); Vervangen door dit: queryString=”select * from qryGenres”;columnHeaders.Add(“Function”); columnHeaders.Add(“Books”);columnFields.Add(“genre_name”); columnFields.Add(“books”);nt=NodeType.genreNode;FillListView(queryString, nt, columnHeaders, columnFields); …en da’s dan ook meteen helemaal veralgemeend, werkt zowel met stringvelden als datevelden als nummervelden en …

Bah, selected item vinden in

Bah, selected item vinden in een listview bij een click. Hoe? Geen idee. Ik had er in Delphi in de tijd ook al last mee, ik denk dat ik toen iets in de zin van ListView1.Selected:=ListView1.GetItemAt(ListView1.ScreenToClient(mouse.CursorPos).X,ListView1.ScreenToClient(mouse.CursorPos).Y); gedaan had. Brr, inderdaad. Het lijkt nochtans redelijk simpel: dubbelklik op een listview lvMain, en dan weet ik normaal …

Zonet op tv gezien. Um

Zonet op tv gezien. Um Qasr was zogezegd gisteren al ingenomen en onder controle, maar dat blijkt toch niet helemaal het geval te zijn: “some fanatics will remove their uniforms and fight us in civilian clothes”. Ja, da’s dan guerilla-oorlog zeker? En, even tellen, één irakees op een fiets in de verte, twee irakezen elk …

Oops, vergeten dat ik TreeDataNodes

Oops, vergeten dat ik TreeDataNodes moest aanmaken, geen eenvoudige TreeNodes! Hopsadaisy: TreeDataNode tn=new TreeDataNode(    dr.GetString(dr.GetOrdinal(nameField))+     ” (“+dr.GetInt32(dr.GetOrdinal(countField))+”)”,    expandedNode,    dr.GetInt32(dr.GetOrdinal(keyField)));thisNode.Nodes.Add(tn); Oche, ik weet wel dat het allemaan geen raketwetenschap is, maar ik doe het echt zó graag, programmeren. Iets maken van niets, en ondertussen nieuwe dingen bijleren–is er iets wijzer?

Echt wel een gemak, die

Echt wel een gemak, die DataReader in C#. Gaat enkel vooruit, doet niets anders dan data lezen, maar: verblindend snel, en bijzonder eenvoudig: cnnBooks.Open();OleDbCommand getData=new OleDbCommand(queryString,cnnBooks);OleDbDataReader dr=getData.ExecuteReader();while (dr.Read()) {    thisNode.Nodes.Add(        dr.GetString(dr.GetOrdinal(nameField))+         ” (“+dr.GetInt32(dr.GetOrdinal(countField))+”)”);}dr.Close();cnnBooks.Close(); Connectie open zetten, commando aanmaken en instantiëren, commando uitvoeren en in de reader steken, over de rijen van de reader lopen en …