Ciao a tutti.
Mi sembra una cretinata, ma sto uscendo pazzo.

Ho una DropDownList popolata da db.
codice:
Public Sub ddlStato_Load() stringacn.StringaConnessione() 
Dim cntxt As String = stringacn.getcn 
Dim cn As New MySqlConnection(cntxt) 
Dim cm As New MySqlCommand("SELECT * FROM stati", cn) 
Try 
cm.Connection.Open() 
Dim ddlValues As MySqlDataReader 
ddlValues = cm.ExecuteReader() 
ddlStato.DataSource = ddlValues 
ddlStato.DataValueField = "nome"
ddlStato.DataTextField = "nome" 
ddlStato.DataBind() 
Catch ex As Exception 
Finally 
If 
cn.State = Data.ConnectionState.Open 
Then 
cm.Connection.Close() 
cm.Connection.Dispose() 
End If 
End Try
End Sub
Fin qui tutto ok. l'elenco si vede.

Ora voglio che, alla selezione di un item della DropDL e al successivo click su un button, questo venga memorizzato su db.
Ho fatto così, ma non funziona:
codice:
Protected Sub bttSalva_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bttsegnala.Click stringacn.StringaConnessione() 
Dim cntxt As String = stringacn.getcn 
Dim cn As New MySqlConnection(cntxt) 
Dim cm As New MySqlCommand("UPDATE tabella1 SET stato=?stato WHERE ( ids = ?ids )", cn) 
Dim mydata As New DataTable Try 
cn.Open() 
cm.Parameters.AddWithValue("?stato", ddlStato.SelectedItem.Value ) cm.Parameters.AddWithValue("?ids", lblIDS.Text) 
Dim myAdapter As New MySql.Data.MySqlClient.MySqlDataAdapter 
myAdapter.SelectCommand = cm 
myAdapter.Fill(mydata) 
Catch ex As Exception
MsgBox("Modifica non avvenuta") 
Finally 
If cn.State = Data.ConnectionState.Open 
Then 
cn.Close() 
End If 
End Try 
End Sub
ho provato a farmi stampare il ddlStato.SelectedItem.Value/Text ma mi restituisce sempre il primo valore delle lista.

come si fa?
Grazie