Tässä koodi pätkä jolla haetaan tietokannasta viestit ja sijoitetaan mydata muuttujaan. Sieltä ne laitetaan listboxiin, mutta ne ns. "item", joissa kohta luettu on 0 pitäisi saada lihavoitua.
Kenelläkään ehdoituksia?
Private Sub hae_viestit() mydata.Clear() Dim conn As New MySqlConnection(Form1.yhteys) Dim myCommand As New MySqlCommand Dim myAdapter As New MySqlDataAdapter myCommand.Connection = conn myCommand.CommandText = "SELECT viesti_id,lahettaja_id, aika_leima, luettu, CONCAT(enimi,' ',snimi,': ',Aihe) AS Saapunut FROM viestit,tunnukset " _ & "WHERE viestit.lahettaja_id = tunnukset.id AND viestit.vastaanottaja_id = ?kayttaja ORDER BY viestit.luettu" myCommand.Parameters.Add("?kayttaja", Form2.tayttaja) myAdapter.SelectCommand = myCommand Try conn.Open() myAdapter.Fill(mydata) conn.Close() myAdapter.Dispose() ListBox1.DataSource = mydata ListBox1.DisplayMember = "Saapunut" ListBox1.ValueMember = "viesti_id" ListBox1.Enabled = True Catch myerror As MySqlException MessageBox.Show(myerror.Message) End Try End Sub
Käytä listview controllia :)
Siinä voi laittaa jokaiselle oman tyylin
Tein silläkin kokeilua, mutta sen käyttäminen oli työlästä ja silläkin varmasti yhtä vaikea homma kuin listbox.
Private Sub hae_tyontekijat() Dim conn As New MySqlConnection(Form1.yhteys) Dim myCommand As New MySqlCommand Dim myAdapter As New MySqlDataAdapter Dim myReader As MySqlDataReader myCommand.Connection = conn myCommand.CommandText = "SELECT id, CONCAT(enimi,' ',snimi) AS Nimi, email AS Sähköposti,last_load FROM tunnukset" myAdapter.SelectCommand = myCommand Try conn.Open() myAdapter.Fill(myDataTyontekijat) myReader = myCommand.ExecuteReader While myReader.Read Dim listitem As New ListViewItem(myReader.Item("Nimi").ToString) listitem.SubItems.Add(myReader.Item("Sähköposti")) listitem.SubItems.Add(myReader.Item("last_load")) ListView1.Items.Add(listitem) End While conn.Close() Catch myerror As MySqlException End Try End Sub
listitem.fontialla voit muuttaa tota tyyliä
Niko kirjoitti:
listitem.fontialla voit muuttaa tota tyyliä
Niin mutta listview:ssä ei ole ValueMember:ä, jonka avulla on helpompi toteuttaa noita mysql kyselyitä.
No joko teet vaikeammin tai sitten sun pitää tyytyä siihen mitä on tarjolla... Microsoftin Forumissa vois joku osata neuvoa enemmän varmaan...
Voit kyllä listviewitemien avulla lihavoida tietyn rivin. Oon tässä esimerkissä laittanu jokatoisen rivin taustan harmaaksi vähän niinku iTunesissa on.. toivottavasti esimerkistä on apua.
'Make array of customers customersArray = makeCustomersArray(sqlQuery) For i = 0 To customersArray.Count - 1 myCustomer = customersArray(i) 'Generate new listViewItem If i Mod 2 = 0 Then myListViewItem = New ListViewItem(New String() {myCustomer.getCompany, myCustomer.getLastName, myCustomer.getFirstName, myCustomer.getPhone, myCustomer.getMobile, myCustomer.getEmail, myCustomer.getCustomerId}, -1, System.Drawing.Color.Empty, System.Drawing.Color.FromArgb(CType(255, Byte), CType(255, Byte), CType(255, Byte)), New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))) Else myListViewItem = New ListViewItem(New String() {myCustomer.getCompany, myCustomer.getLastName, myCustomer.getFirstName, myCustomer.getPhone, myCustomer.getMobile, myCustomer.getEmail, myCustomer.getCustomerId}, -1, System.Drawing.Color.Empty, System.Drawing.Color.FromArgb(CType(224, Byte), CType(224, Byte), CType(224, Byte)), New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))) End If 'Add new listViewItem to list Me.customersList.Items.AddRange(New ListViewItem() {myListViewItem}) Next i
Aihe on jo aika vanha, joten et voi enää vastata siihen.