2011-12-13 82 views
0

我有一个查看患者页面,它显示所有患者,并且每个患者旁边都有一个链接,可将您带到另一个页面,用户可以使用文本框和下拉列表更新患者信息。 。我用查询字符串选择了一定的病人和阅读器命令从数据库中读取..
问题是读者根本没有访问表..你能帮我吗?使用阅读器的阅读表ASP.NET和VB

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 
+0

你已经在QueryString中正确拼写了PatientID? – 2011-12-13 22:54:16

回答

0

根据你最近的评论,即时通讯猜测其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子句?