El error está en que le estás pasando un dt.Rows al texto de un Label.
un dt.Rows devuelve un objeto DataRowCollection y no un string, como lo recibe la propiedad Text del Label.
Como estás consultando un usuario deberías colocar esta validación.
Código ASP:
Ver originalusing System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
public partial class mostrar : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
string usuario;
usuario = txtUsuario.Text;
SqlConnection cnn= new SqlConnection("Data Source=PORTATIL-PC;Initial Catalog=crud;Persist Security Info=True;User ID=sa;Password=123456");
SqlCommand cmd = new SqlCommand("SELECT * FROM usuario WHERE usuario='" + usuario + "'",cnn);
SqlDataAdapter da= new SqlDataAdapter(cmd);
DataTable dt= new DataTable();
da.Fill(dt);
//Aquí vemos si la consulta trae datos, es decir, si el usuario que consultaste existe.
if(dt.Rows.Count > 0)
{
//Al datatable debes indicarle la fila de la cual quieres obtener el valor. Suponemos que te trae un registro,
//porque es un usuario el que consultas, por eso le damos el valor 0... dt.Rows[indice][nombreColumna]
//Antes solo estabas pasando el nombre de la columna
lblNombre.Text= dt.Rows[0]["usuario"].ToString();
lblApellido.Text=dt.Rows[0]["apellido"].ToString();
}
cnn.Close();
}
}
Saludos,