Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: [VB.NET] '&'-merkin näyttäminen labelissa (kun merkkijono tulee tietokannasta)

ajv [09.04.2013 11:00:30]

#

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

Grez [09.04.2013 11:42:18]

#

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("&", "&&")

ajv [09.04.2013 13:18:37]

#

Kiitos Grez vastauksesta, näinhän se asia tietenkin on! Eli vaihdan labelit textbokseiksi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta