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 SubKä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 Sublistitem.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 iAihe on jo aika vanha, joten et voi enää vastata siihen.