Por lo general soy una de PHP chico, pero se quedó atascado haciendo un proyecto en vb.net.

Tengo una consulta (sqldatasource) que devuelve un solo valor (la fecha de la última actualización).

Quiero usar una etiqueta para decir algo como «Última actualización:» < Label = (valor devuelto) >

En PHP esto sería simple. En vb.net todo lo que puedo encontrar son infinitas mal escrito el código detrás de mostrar cómo se había de ejecutar la consulta onLoad, a continuación, enlazar a la etiqueta.

Es esta realmente la única manera de hacer esto? Parece ridículamente simple problema de tener a una solución de largo. He utilizado un control datagrid simplemente se unen el resultado de la consulta directamente, sino que se imprime el nombre de la columna así como la fecha, así que no es ideal.

Alguna idea?

  • Si todo lo que quiero mostrar es la última actualización (solo campo), entonces no hay punto de control datagrid. Sólo tiene que utilizar un ADO.NET DataReader, un montón de ejemplos alrededor. He aquí uno: msdn.microsoft.com/en-us/library/haa3afyz.aspx
InformationsquelleAutor julio | 2010-06-02

1 Comentario

  1. 2

    En el método Page_Load, ejecute la consulta. En su página.aspx, usted tiene un control de formulario, vamos a llamarlo label1. Conjunto de label1.texto = queryResult.

    Sub Page_Load()
      dim myConnection as new data.sqlclient.sqlconnection
      dim myCommand as new data.sqlclient.sqlcommand
      dim sqlReader as data.sqlclient.sqldatareader
      myConnection.connectionString = 'enter your connection string details'
      myConnection.Open()
      myCommand = New SqlCommand("Select lastUpdated from yourTable", myConnection)
      sqlReader = myCommand.ExecuteReader()
      if sqlReader.hasRows then
        sqlReader.read()
        label1.text = Format("MM/dd/yyyy", sqlReader("lastUpdated"))
      end if
    End Sub

    Y su página.aspx (en algún lugar)

    <asp:label id="Label1" runat="server" />

    PS – I puede ser desactivado en el formato de las funciones anteriores, ha pasado un tiempo.

    De EDICIÓN basado en el comentario del usuario:

    Bien, por lo que están haciendo, yo no recomiendo un SQLDataSource como es en realidad destinados a ser vinculados a un control, como un gridview o repetidor. Sin embargo, si desea utilizar el SQLDataSource, tendrá que enlazar a un objeto DataView en el código subyacente. A partir de allí, se puede acceder a cada fila (solo debe haber uno) y la columna por su nombre.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim dv As New Data.DataView
        'use the id of your SqlDataSource below'
        dv = SqlDataSource1.Select(DataSourceSelectArguments.Empty)
        Label1.Text = dv.Table.Rows(0)("LastUpdated")
    End Sub

    Utilizar una cadena de conexión desde la web.config:

    Web.Archivo De Configuración:

    <appSettings>  
       <add key="strConnectionString" value="Data Source=192.168.0.55;Database=Times;User ID=sa;PassWord=sa"/> 
    </appSettings>

    Código Detrás:

         Dim sqlConn as new data.sqlClient.SqlConnection()
         sqlConn.ConnectionString=ConfigurationManager.ConnectionStrings("strConnectionString").ConnectionString
         sqlConn.Open()
    • gracias Tommy – ¿puede usted explicar cómo me gustaría utilizar un SqlDataSource con este enfoque? O, si eso no es posible o aconsejable, cómo utilizar una plantilla predefinida de cadena de conexión con este código?
    • gracias, realmente gracias por tomarse el tiempo para ayudar con esto. Creo que estoy muy cerca, pero por alguna razón I»m no recibe los datos de impresión. Me cambié de sqldatasource a un código detrás de enfoque como usted recomienda, y para probar he añadido una «cosa» cláusula de la Si sqlReader.HasRows luego sqlReader.Read() de la etiqueta.Text = Format(«dd/MM/aaaa», sqlReader(«LastUpdate»)) Else etiqueta.Text = «no hay datos» Fin Si esto parece como que iba a trabajar, pero no tiene el valor que se imprime. Alguna idea?
    • tengo, necesario para agregar «se encarga de Mí.De carga» a la página en función de la carga. Gracias por su ayuda!
    • Lo siento ‘bout que, me shorthanded el page_load de la función y no debería tener. Aquí es la correcta page_load de la línea de su código: Protected Sub Page_Load(ByVal sender as Object, ByVal e as System.EventArgs) Handles Me.De carga. PROTIP: (siempre quise usar esa!): En el SV cuando usted está en el código, verás dos desplegables en la parte superior de la ventana de código. El de la izquierda es para los objetos que esta página tiene acceso a (etiquetas, redes, etc.). La de la derecha es para los métodos y eventos para ese objeto. Elija la página de eventos) desde la izquierda, a continuación, (carga) de la derecha. Hace un auto generar.
    • ..del método correcto de firmas para usted. No hay problema, feliz de aprendizaje. .NET es una amplia y potente framework. Mi primer par de proyectos y aún ahora, me encuentro descubriendo más rápido/mejor/diferentes formas de hacer las mismas cosas.

Dejar respuesta

Please enter your comment!
Please enter your name here