Consulta sql server vb .net

Favor si me puede colaborar con esto:
Tengo el siguiente código, el cual me muestra en un datagridview el resultado de una consulta y en un label la cantidad de registros que aparecen en el datagridview.
Imports System. Data
Imports System. Data. SqlClient
-----------------------------
Dim sCnn As String
        sCnn = "Data Source = VIRTUALXP-35161\SQLEXPRESS; Initial Catalog = reporteventas; Integrated Security = True"
        Dim sSel As String = "SELECT * FROM COLPAIS where ESTADO_CIERRE= 'OPEN'"
        Dim da As SqlDataAdapter
        Dim dt As New DataTable
        Try
            da = New SqlDataAdapter(sSel, sCnn)
            da.Fill(dt)
            Me.DataGridView1.DataSource = dt
       labelinfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count)
        Catch ex As Exception
            labelinfo.Text = "Error: " & ex.Message
        End Try
------------------------------------------------------
Pero lo que realmente quiero es mostrar en un label o textbox, la cantidad de los registros a consultar, sin pasar por el datagridview... Necesito mostrar tantos registros de una cosa... Tantos registros de otra.
se que seria con select count(*) from colpais where estado_cierre='OPEN'
Pero no se como traer esa consulta a un label o textbox.. Sin necesidad del datagridview.

1 Respuesta

Respuesta
1
Haces lo mismo que estas haciendo, en el datatable tienes los datos, simplemente no necesitas tomar el datatable (dt) y asignarlo a un datgridview, ese es tu almacenamiento de datos en la memoria.
Gracias por tu pronta respuesta,
logre acomodarlo de la siguiente manera y me funciona, lo publico para quien lo necesite:
Imports System.Data.SqlClient
Public Class Form2
    Dim cn As New SqlConnection
    Dim cmd, As New SqlCommand
    Dim var, As Integer
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cn.ConnectionString = "Data Source = VIRTUALXP-35161\SQLEXPRESS; Initial Catalog = reporteventas; Integrated Security = True"
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        cn.Open()
        cmd = New SqlCommand("SELECT COUNT(*) FROM COLPAIS WHERE ESTADO_CIERRE ='" & TextBox1.Text & "'", cn)
        cmd.Connection = cn
        var = cmd.ExecuteScalar()
        Me.Label1.Text = "Total datos: " &var
        cn.Close()
    End Sub
End Class
Tengo otra pregunta si me puedes ayudar o si creo otra pregunta y es referente a que tengo una base de datos que puede manejar aprox casi 1.5 millones de registros. Y si le hago un query por ejemplo de select * from tabla y me los muestre en un datagridview, se demora una eternidad o sino se cuelga el sistema... y se maneja en equipos con core i3 y i5.
Se que es mucha cantidad de información por eso te pregunto si hay alguna forma de mostrar todos esos datos sin que se demore mucho.
¿Es posible ir mostrando por cantidades? Por ejemplo que me muestre 100 registros de la bd en el datagridview y luego yo le de a un botón para que me muestre los siguientes 100 registros de la bd y los ponga en el mismo datagridview sin borrar esos primeros 100 y así sucesivamente.
Espero habner sido claro
Gracias
En primer lugar NUNCA hagas un select * a una tabla que pase de más de 300 mil registros, realiza el select campo a capo y veras que mejora muchísimo la velocidad.
Si claro puedes utiliar un Select TOP 100 para mostrar los primeros 100, luego con un botón mostrar los siguientes 100, pero realmente tendrías que buscar como porque no recuerdo como hacer para que la segunda vez tome el registro 101 hasta el 200 y así sucesiavemente, bsuca la sintaxis de top y encuentras como hacerlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas