Member 13468706 Ответов: 0

Как заполнить текстовые поля и gridview?


Не удается отобразить данные в gridview или текстовых полях.

Что я уже пробовал:

мой код...
Imports System.Data.SqlClient
Imports System.Data
Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.AspNet.Identity.Owin
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports Microsoft.Owin.Security
Imports System.Runtime.InteropServices

Partial Class PatientMedicationHistory
    Inherits System.Web.UI.Page

    'Dim txtPatientName As New TextBox
    ' Dim txtPatientID As New TextBox
    ' Dim txtDOB As New TextBox
    Dim intZero As Integer
    Dim SQLCONN As New SqlConnection
    Dim SQLCMD As New SqlCommand
    Dim TempHistoryData As New DataTable()
    
    Protected Sub btEnterKey_Click(sender As Object, e As EventArgs) Handles btEnterKey.Click

            'check if temp table has data... This does no work always shows if intZero > 0
            SQLCMD.CommandText = ""
            SQLCMD.CommandType = CommandType.Text
            SQLCMD.CommandText = "Select "
            SQLCMD.CommandText = SQLCMD.CommandText & "intZero"
            SQLCMD.CommandText = SQLCMD.CommandText & " = COUNT(*) from TempHistoryData"

            If txtPatientID.Value <> "" Then
                SQLCMD.CommandText = SQLCMD.CommandText & " Where TempHistoryData.PatientID = '" & txtPatientID.Value & "'"
            ElseIf txtPatientName.Value <> "" Then
                SQLCMD.CommandText = SQLCMD.CommandText & " Where TempHistoryData.PatientName = '" & txtPatientName.Value & "'"
            End If

            Try
                SQLCMD.ExecuteNonQuery()
            Catch ex As Exception
                RecordErr.Text = "Recount Error intZero"
                RecordErr.Visible = True
                SQLCONN.Close()
                Exit Sub
            End Try

            If (intZero > 0) Then
                'Populate Patient Medication History Screen... No data shows in text boxes and gridview does not show on web page
                txtPatientID.Value = TempHistoryData("PatientID").ToString()
                txtPatientName.Value = TempHistoryData("PatientName").ToString()
                txtDOB.Value = TempHistoryData("DateOfBirth").ToString()

                GridView1.DataSource = TempHistoryData
                GridView1.DataBind()
            Else
                RecordErr.Text = "intZero Error"
                RecordErr.Visible = True
                SQLCONN.Close()
                Exit Sub
            End If

            SQLCONN.Close()
        Else
            RecordErr.Text = "Record Not Found"
            RecordErr.Visible = True
        End If
    End Sub

FranzBe

ExecuteNonQuery (), как следует из названия, выполняет команду, например команду update или delete, которая не является запросом. Что вам нужно сделать, так это ExecuteDataReader(). Попробуйте google "читать данные из sqldatareader" или в качестве альтернативы "ado.net заполнение datatable"
Когда вы смотрите на свой код: как вы думаете, получит ли intZero свое значение?

0 Ответов