Eli kyseinen merkkihän on varattu merkki ja jos sen haluaa näkymään merkkijonossa, niin niitä täytyy laittaa kaksi peräkkäin.
Label15.Text = "&&"
Mulla kuitenkin nämä tekstinpätkät tulevat tietokannasta ja tuntuu vähän viritykseltä lähteä etsimään niistä '&'-merkkiä ja korvaamaan niitä tuplamerkillä. Tähän täytyy olla jokin muukin ratkaisu?
Dim ConnString As String = "server=" & _address & _ ";user id=" & _uid & _ ";password=" & _password & _ ";initial catalog=" & _database & _ ";Connect Timeout=1;MultipleActiveResultSets=true" Dim sql As String = "SELECT xxx FROM yyy WHERE id = 538" Try Dim _conn As SqlConnection = New SqlConnection(ConnString) _conn.Open() Dim SQLCmd As New SqlCommand(sql, _conn) Dim result As SqlDataReader = SQLCmd.ExecuteReader result.Read() Label15.Text = result("xxx") result.Dispose() SQLCmd.Dispose() _conn.Close() _conn.Dispose() Catch ex As Exception MsgBox(ex.ToString) End Try
Se on vähän poikkeuksellista laittaa käyttöliittymän rakenteisiin tavaraa tietokannasta (esim. Label) Yleensähän tietokannasta tavarat tulee esim. tekstikenttiin (textbox), grideihin yms, joissa & toimii eri tavalla.
Elegantti ratkaisu olisi laittaa tuon Labelin tilalle textbox (read only, ilman kehystä, jolloin se näyttääkin samalta kuin label) Tässä olisi sekin hyvä puoli, että siitä voi kopioida tekstiä leikepöydälle, toisin kuin labelista.
Jos kuitenkin haluat väärinkäyttää labelia tuohon, niin sitten ei auta kuin:
Label15.Text = result("xxx").Replace("&", "&&")
Kiitos Grez vastauksesta, näinhän se asia tietenkin on! Eli vaihdan labelit textbokseiksi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.