He creado un sencillo formulario que contiene un cuadro de texto que pide al usuario que introduzca un ID. Hay un botón de enviar en el formulario y un SQLDataSource que los cables hasta el cuadro de texto valor como un parámetro de la consulta.

<fieldset>
<asp:Label runat="server" ID="lblAcctNo">Please enter the account number:</asp:Label>
<asp:TextBox runat="server" ID="txtAcctNo"></asp:TextBox>
<asp:Button runat="server" ID="btnSubmit" Text="Submit" />
</fieldset>

<asp:SqlDataSource ID="sdsMMSPts" runat="server" 
ConnectionString="<%$ ConnectionStrings:mmsptsConnectionString %>" 

SelectCommand="SELECT [Recommended], [PatientId] FROM [Patients] WHERE ([PatientId] = @PatientId)">
<SelectParameters>
    <asp:ControlParameter ControlID="txtAcctNo" Name="PatientId" 
        PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>

He visto ejemplos donde una conexión de SQl está establecido en el código subyacente. Es que es necesario, o no la anterior SQLDataSource tener cuidado de que? ¿Alguien puede compartir algunos buenos enlaces a la creación de cuadros de mensaje basado en los resultados de la consulta? En mi caso, si se Recomienda es 1, entonces messaage 1 sería necesario demostrar, si es Recomendado es de 2 mensaje 2 tendría que ser demostrado. Si el id de usuario no es válido, el tercer mensaje necesita ser demostrado. ¿Cómo puedo lograr esto?

ACTUALIZACIÓN:

En mi código subyacente, he escrito el siguiente hasta el momento:

protected void Page_Load(object sender, EventArgs e)
    {
        string connString = System.Configuration.ConfigurationManager.ConnectionStrings
        ["mmsptsConnectionString"].ConnectionString;

        SqlConnection sqlconn = new SqlConnection(connString);
        sqlconn.Open();

        SqlCommand cmd = new SqlCommand();
        cmd.Connection = connString;
        cmd.CommandType = SqlDataSourceCommandType.StoredProcedure;
        cmd.Parameters.Add(new SqlParameter ("@PatientId", SQLDbType.varchar ));

        using (var reader = cmd.ExecuteReader()) 
        {while reader.Read()
                    txtAcctNo.Text=cmd.Parameters("@PatientId")
        }

    }

Mi intención es llamar a mi procedimiento almacenado y devolver los resultados después de binindg @el identificador del paciente a la txtAcctNo.Texto. Estoy un poco oxidado en el SqlClient cosas, qué medidas adicionales son necesarias para obtener los resultados de mi procedimiento almacenado? Uno de los de salida parametsrs es @Recomendado que es un campo de bits. ¿Cómo puedo evaluar el valor del parámetro y desencadenar un cuadro de mensaje de alerta o una etiqueta de control basado en el valor de este parámetro? Por ejemplo, si @Recomendado = 1, la salida de «Mensaje 1» a label1.texto else output «Mensaje 2» a lable1.texto

InformationsquelleAutor SidC | 2011-10-07

3 Comentarios

  1. 1

    Tendrás que hacer ese trabajo en el code-behind, si utiliza el SqlDataSource o uso SqlConnection directamente a ustedes. Pero el SqlDataSource no tiene la capacidad de interactuar directamente con javascript o las bibliotecas de javascript.

    • Así, SQLDataSource no puede ser el «puente» entre el control y la base de datos? Lo JS biblioteca de qué sugiere usted para los cuadros de mensaje?
    • El SqlDataSource puede ser un puente entre la base de datos y el control, sino que proporciona los datos a del lado de servidor sólo el código, no de código del lado del cliente. Suena, basado en su pregunta de la que desea iniciar algún tipo de lado del cliente pop-up (es decir, alert() o tal vez una interfaz de usuario jquery cuadro de diálogo). No puede proporcionar los datos a aquellos.
    • No estoy seguro si quiero usar JS alerta o sólo para la salida de un campo de etiqueta en la página. Si yo quería seguir con el servidor de lado los controles, voy a enlazar los resultados para la etiqueta o cuadro de texto para que se muestre el mensaje deseado? ¿Puedo crear 3 ocultas etiquetas y cuadros de texto, uno para cada respuesta? Si es así, ¿cómo puedo mostrar, basadas en los resultados de la consulta?
    • Aún así, usted necesita para manejar la lógica de código subyacente, la SqlDataSource es tal como lo indica su nombre, es una fuente de datos. No tiene ningún tipo de capacidad para ejecutar la lógica.
  2. 1

    Puede intentar usar el OnSelecting evento a modificar los parámetros:

    protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
    {
        e.Command.Parameters["Arg1"].Value = TextBox1.Text;
    }
  3. 0

    Este es un muy tarde la respuesta, pero para aquellos que todavía look @ este

    Esto es para mostrar cómo enlazar Texbox Valor para el origen de datos y se actualicen automáticamente después de modificar el valor del campo de texto

    1. quitar el selectpara y no es necesario el código detrás de
    2. acaba de establecer AutoPostBack=»True» en el cuadro de texto de modo que cuando el usuario escriba en él, a continuación, salir de él ( o agregar un maniquí botón de búsqueda en este caso btnSubmit y establecer autopostback a la verdad), es el fuego y el origen de datos se actualizará

    3. modificar el origen de datos selectcommand mediante la eliminación de la cláusula where de la el identificador del paciente y agregar filtro:

    SelectCommand=»SELECCIONE [Recomendado], [el identificador del paciente] DE [los Pacientes]» FilterExpression=»el identificador del paciente = ‘{0}'»

         <FilterParameters>
            <asp:ControlParameter Name="PatientId" ControlID="txtAcctNo" />
        </FilterParameters>   

Dejar respuesta

Please enter your comment!
Please enter your name here