ASP.NET - WHERE y sqldatasource

   
Vista:

WHERE y sqldatasource

Publicado por nenure (56 intervenciones) el 08/04/2008 11:11:33
Hola! Por favor, necesito ayuda: No me funcionan los where!! No se que mas probar ya, pero lo necesito urgentemente ya que no puedo hacer nada de insertar, modificar o borrar de un gridview o formview ni nada que lleve un where, asi que imaginaos. Os mando todo el codigo que tengo para ver si por favor me ayudais y veis que puedo estar haciendo mal.

Gracias de antemano.

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Popup.aspx.vb" Inherits="Popup" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
function PasarDatos(){
window.opener.FrmPadre.Txtinmobiliaria.value=window.FrmHijoPopup.txtinmo.value;
window.opener.FrmPadre.Txtzona.value=window.FrmHijoPopup.Txtzo.value;
window.close();
}
</script>
</head>
<body>
<form id="FrmHijoPopup" runat="server">
<div>
<table>
<tr>
<td colspan="4">
Nombre:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="BtnBuscar" runat="server" Text="Buscar" />
<input id="BtnAceptar" type="button" value="Aceptar" onclick="PasarDatos()" /></td>
</tr>
<tr>
<td colspan="4">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
DataKeyNames="inmobiliaria" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="inmobiliaria" HeaderText="inmobiliaria" InsertVisible="False"
ReadOnly="True" SortExpression="inmobiliaria" />
<asp:BoundField DataField="zona" HeaderText="zona" SortExpression="zona" />
<asp:BoundField DataField="provincia" HeaderText="provincia" SortExpression="provincia" />
</Columns>
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" connectionstring="<%$ ConnectionStrings:conexion buena%>" ProviderName="<%$ ConnectionStrings:conexion buena.ProviderName %>"
SelectCommand="SELECT inmobiliaria, zona, provincia FROM nerea2_inmobiliarias WHERE inmobiliaria LIKE @inmobiliaria + '%' ">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" DefaultValue="%" Name="inmobiliaria" PropertyName="Text"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<input id="txtinmo" type="hidden" runat="server" />
<input id="Txtzo" type="hidden" runat="server" /></td>
</tr>
</table>

</div>
</form>
</body>
</html>

EL ASPX.VB

Partial Class Popup
Inherits System.Web.UI.Page

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
txtinmo.Value = GridView1.SelectedRow.Cells(1).Text
Txtzo.Value = GridView1.SelectedRow.Cells(2).Text
End Sub
End Class

WEB.CONFIG

<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings>
<add name="conexion buena" connectionString="Provider=MSDAORA;Data Source=NOMBRE;Password=**;User ID=**" providerName="System.Data.OleDb"/>
</connectionStrings>
<system.web>
<compilation debug="true" strict="false" explicit="true"/>
<pages>
<namespaces>
<clear/>
<add namespace="System"/>
<add namespace="System.Collections"/>
<add namespace="System.Collections.Specialized"/>
<add namespace="System.Configuration"/>
<add namespace="System.Text"/>
<add namespace="System.Text.RegularExpressions"/>
<add namespace="System.Web"/>
<add namespace="System.Web.Caching"/>
<add namespace="System.Web.SessionState"/>
<add namespace="System.Web.Security"/>
<add namespace="System.Web.Profile"/>
<add namespace="System.Web.UI"/>
<add namespace="System.Web.UI.WebControls"/>
<add namespace="System.Web.UI.WebControls.WebParts"/>
<add namespace="System.Web.UI.HtmlControls"/>
</namespaces>
</pages>
<authentication mode="Windows"/>
</system.web>
</configuration>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:WHERE y sqldatasource

Publicado por Javier Santamaria (312 intervenciones) el 08/04/2008 12:43:51
Hola,

No tendria porque, pero intenta eliminar ese LIKE y poner un igual. Me parece que el like es para un conjunto de datos.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE y sqldatasource

Publicado por nenure (56 intervenciones) el 08/04/2008 13:06:32
Hola! lo he probado pero nada sigue sin funcionar, me da este fallo por si entiendes algo:

Error de servidor en la aplicación '/PasaDatosPopup'.
--------------------------------------------------------------------------------

Uno o más errores al procesar el comando.
ORA-00936: falta una expresión
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Data.OleDb.OleDbException: Uno o más errores al procesar el comando.
ORA-00936: falta una expresión

Error de código fuente:

Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:

[OleDbException (0x80040e14): Uno o más errores al procesar el comando.
ORA-00936: falta una expresión]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +177
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +194
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +56
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +105
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +91
System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +4
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +139
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +139
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +83
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1659
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +13
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +140
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +68
System.Web.UI.WebControls.GridView.DataBind() +5
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +61
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +67
System.Web.UI.Control.EnsureChildControls() +97
System.Web.UI.Control.PreRenderRecursiveInternal() +50
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5731
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE y sqldatasource

Publicado por x (445 intervenciones) el 08/04/2008 17:24:51
Nunca lo he utilizado de esta manera, asi que no se si este bien...

SELECT inmobiliaria, zona, provincia FROM nerea2_inmobiliarias WHERE inmobiliaria LIKE @inmobiliaria + '%'

pero...

SELECT inmobiliaria, zona, provincia FROM nerea2_inmobiliarias WHERE inmobiliaria LIKE 'nombre_de_inmobiliaria'

aqui puedes utilizar el % como comodin:

SELECT inmobiliaria, zona, provincia FROM nerea2_inmobiliarias WHERE inmobiliaria LIKE 'nombre%inmo%iliari%'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE y sqldatasource

Publicado por nenure (56 intervenciones) el 08/04/2008 17:35:00
ya, pero lo que yo quiero es que me seleccione la inmobiliaria que he escrito en el textbox, no uno que diga yo. cuando pongo where inmobiliaria like 'nombreinmobiliaria' si que me funciona, pero yo quiero que sea igual al dato que ha metido.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:WHERE y sqldatasource

Publicado por x (445 intervenciones) el 08/04/2008 20:15:12
Ya intentaste algo como esto?

SqlDataSource1.SelectCommand = "SELECT inmobiliaria, zona, provincia FROM nerea2_inmobiliarias WHERE inmobiliaria LIKE '%" + MiTextBox.Text + "%'"

Te lo pregunto por que yo asi no trabajo y pues no se si sea posible cambiar el valor de SelectCommand.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar