чтение таблицы с использованием ридера ASP.NET и VB - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть страница просмотра пациентов, на которой показаны все пациенты, и рядом с каждым пациентом есть ссылка, которая ведет вас на другую страницу, где пользователь может обновить информацию о пациенте с помощью текстовых полей и выпадающих списков. Я использовал строку запроса, чтобы выбрать конкретного пациента.и команда считывателя для чтения из базы данных ..
Проблема в том, что считыватель вообще не обращается к таблице .. Не могли бы вы мне помочь?

pid = Request.QueryString("Pateint_ID")

Dim tempQuery As String = "SELECT     P.first_name, P.sec_name, P.third_name, P.last_name, P.Gender, PATA.ApplicationStatus," & _
        "P.DoB, P.birthplace, P.Nationality, P.patient_ID, P.issue_date, P.issue_place, P.city, " & _
        "P.Area,h.Name , h.DialysisCetner, p.Mobile_No, p.Work_phone, p.PhoneNo, p.Zipcode, p.POBox, p.problemWithDialysis" & _
        "FROM         Association AS A INNER JOIN PatientApplyToAssociation AS PATA INNER JOIN" & _
        "patient AS P ON PATA.patient_ID = P.patient_ID ON A.Association_ID = PATA.Association_ID INNER JOIN " & _
        "hospital AS H INNER JOIN TreatmentSession AS ts ON  ts.Name = H.Name ON p.patient_ID = ts.patient_ID LEFT OUTER JOIN Family AS F INNER JOIN" & _
        "Gardian AS G ON F.family_ID = G.GID INNER JOIN Relates AS R ON F.family_ID = R.family_ID ON P.patient_ID = R.patient_ID" & _
        "WHERE     (P.patient_ID = pid )"

    Dim query As String = String.Format(tempQuery, pid)

    Dim comm As New SqlCommand(query, con)

    Dim reader As SqlDataReader

    Try

        con.Open()

        reader = comm.ExecuteReader()

        If reader.Read() Then
            txtFirstName.Text = reader("first_name").ToString()
            txtFatherName.Text = reader("sec_name").ToString()
            txtGrandName.Text = reader("third_name").ToString()
            txtFamilyName.Text = reader("last_name").ToString()
            rblGender.SelectedValue = reader("Gender").ToString()
            txtBirthdate.Text = reader("DoB").ToString()
            ddlBirthPlace.SelectedValue = reader("birthplace").ToString()
            txtNationality.Text = reader("Nationality").ToString()
            txtIDCard.Text = reader("patient_ID").ToString()
            ddlIssuePlace.SelectedValue = reader("issue_place").ToString()
            txtIssuedate.Text = reader("issue_date").ToString()
            ddlAddressCity.SelectedValue = reader("city").ToString()
            ddlAddressRegion.SelectedValue = reader("area").ToString()

        End If

    Catch ex As Exception
        MsgBox("somthing's wrong")

    Finally
        con.Close()
    End Try 

1 Ответ

0 голосов
/ 14 декабря 2011

Исходя из вашего последнего комментария, я предполагаю, что это проблема SQL. Сначала я бы взял ваш запрос и запустил его в анализаторе запросов, чтобы убедиться, что он действителен.

Ваш запрос выглядит неверно. После очистки вашего запроса, чтобы он был разборчивым, я заметил это

SELECT     P.first_name, P.sec_name, P.third_name, P.last_name, P.Gender, PATA.ApplicationStatus,
    P.DoB, P.birthplace, P.Nationality, P.patient_ID, P.issue_date, P.issue_place, P.city, 
    P.Area,h.Name , h.DialysisCetner, p.Mobile_No, p.Work_phone, p.PhoneNo, p.Zipcode, p.POBox, p.problemWithDialysis
    FROM         Association AS A INNER JOIN PatientApplyToAssociation AS PATA 
    INNER JOIN patient AS P ON PATA.patient_ID = P.patient_ID ON A.Association_ID = PATA.Association_ID 
    INNER JOIN hospital AS H 
    INNER JOIN TreatmentSession AS ts ON  ts.Name = H.Name ON p.patient_ID = ts.patient_ID 
    LEFT OUTER JOIN Family AS F 
    INNER JOIN Gardian AS G ON F.family_ID = G.GID INNER JOIN Relates AS R ON F.family_ID = R.family_ID ON P.patient_ID = R.patient_ID
    WHERE     (P.patient_ID = pid )

Обратите внимание, что у 2 ваших объединений нет пунктов ON? Не говоря уже о том, что у вас есть 3 объединения с несколькими предложениями ON?

...