Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema con DataGrid

Estas en el tema de Problema con DataGrid en el foro de .NET en Foros del Web. Hola! En un form tengo por un lado: dos dropdownlist y un boton de buscar y por otro lado tengo un textbox y un boton ...
  #1 (permalink)  
Antiguo 25/05/2006, 15:23
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 18 años
Puntos: 0
Problema con DataGrid

Hola!

En un form tengo por un lado: dos dropdownlist y un boton de buscar y por otro lado tengo un textbox y un boton de buscar

lo que quiero hacer es que el usuario tenga dos opciones de busqueda, una pasando como parametros los valores del selectvalue de los dropdownlist o bien hacer una busqueda por palabra clave según lo que el usuario capture en el textbox.

Tengo un solo storedprocedure para estas dos opciones de búqueda.

los parametros que debo pasar son:
En caso de hacer la busqueda seleccionando un valor de los dropdownlist:
@Ramo = this.ddlRamo.SelectedValue
@Categoria = this.ddlCategoria.SelectedValue
@vTipo= 1 (Se refiere al tipo de busqueda por seleccion de combos)
@txtPalabraClave = this.txtPClave.Text (Aunque aqui no tiene nada)

En caso de hacer la busqueda por palabra clave:
@Ramo = ""
@Categoria = ""
@vTipo = 2 (Se refiere al tipo de busqueda por palabra clave)
@txtPalabraClave = this.txtPClave.Text

y hago la busqueda en el stored de la siguiente manera:

Código:
             @RamoId 	int,
	@CategoriaId	int,
	@Tipo		int,
	@PClave	varchar(255)


AS
	IF @Tipo = 1
		select * from empresas
		where ramoId = @RamoId
		and categoriaId = @CategoriaId
		order by Empresa
	
	IF @Tipo = 2
		select * from empresas
		where Empresa like '%'+ @PClave +'%' 
		or Descripcion like '%'+ @PClave +'%'
		order by Empresa
Lo extraño es que la busqueda por palabra clave no me funciona, me manda el siguiente error:
Input string was not in a correct format

Este error lo marca solamente cuando primero quiero buscar por palabra clave.

Pero si primero realizo una busqueda seleccionando algo de los combos y despues hago una busqueda por palabra clave, entonces si me muestra bien el resultado...

Este es mi codigo:

Código:
private void btnBuscar_Click(object sender, System.EventArgs e)
		{
			string strConexion = this._appconfig.GetConfig("Conexiones","ContenidoPrueba");
			string vRamo = this.ddlRamo.SelectedValue;
			string vCategoria = this.ddlCategoria.SelectedValue;
			int vTipo = 1;
			string PClave = this.txtPClave.Text;
			
			FillDataGrid(strConexion, vRamo, vCategoria, vTipo, PClave);
		}
		private void FillDataGrid(string strConexion, string vRamo, string vCategoria, int vTipo, string PClave)
		{						
			// Creamos la conexión
			sqlConexion	= new SqlConnection(strConexion);
			sqlComando = new SqlCommand("LstEmpresas", sqlConexion);
			sqlComando.CommandType = CommandType.StoredProcedure; 
			sqlComando.Parameters.Add (new SqlParameter("@Tipo",SqlDbType.Int,4));
			sqlComando.Parameters.Add (new SqlParameter("@PClave",SqlDbType.VarChar,255));
			sqlComando.Parameters.Add (new SqlParameter("@RamoId",SqlDbType.Int,4));
			sqlComando.Parameters.Add (new SqlParameter("@CategoriaId",SqlDbType.Int,4));
			sqlComando.Parameters["@RamoId"].Value = vRamo;
			sqlComando.Parameters["@CategoriaId"].Value = vCategoria;
			sqlComando.Parameters["@Tipo"].Value = vTipo;
			sqlComando.Parameters["@PClave"].Value = PClave;
			sqlConexion.Open();
			SqlDataAdapter da = new SqlDataAdapter(sqlComando);
			//Llenar el Dataset
			DataSet ds = new DataSet();
			da.Fill(ds, "Empresa");
			//Ligar el datagrid con la fuente de datos
			dgEmpresas.DataSource = ds;
			dgEmpresas.DataMember = "Empresa";
			dgEmpresas.DataBind();
			sqlComando.Dispose();
			sqlConexion.Close();    // Close Connection
			sqlConexion.Dispose();  
		}

		private void btnBuscarPC_Click(object sender, System.EventArgs e)
		{
			string strConexion = this._appconfig.GetConfig("Conexiones","ContenidoPrueba");
			string vRamo = "";
			string vCategoria = "";
			int vTipo = 2;
			string PClave = this.txtPClave.Text;
			
			FillDataGrid(strConexion, vRamo, vCategoria, vTipo, PClave);
		}

	}
Alguna idea de que es lo que esté pasando???
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:42.