【问题标题】:Display a table on a webpage from database在数据库中的网页上显示表格
【发布时间】:2016-06-11 14:34:14
【问题描述】:

我正在创建一个网站,允许患者登录并查看他们自己的数据。到目前为止,当他们登录时,他们被重定向到 user.aspx 页面,并且会话在 Patient 表的标签上显示他们的用户名(我已包含会话信息以帮助解决问题)......但我也想要一个表显示患者对应的药物信息:

患者表(所有表都是虚拟数据):

药桌:

登录后的会话在login.aspx中进行认证:

Public Function CheckUser(username As String, password As String) As Integer
    Dim cmdstring As String = "SELECT * FROM Patient  Where Username=@USERNAME AND Password=@PASSWORD"
    Dim found = 0
    Using conn As New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Laura\Final_proj\App_Data\surgerydb.mdf;Integrated Security=True;Connect Timeout=30")

        Dim cmd = New SqlCommand(cmdstring, conn)
        cmd.Parameters.Add("@USERNAME", SqlDbType.NChar).Value = username
        cmd.Parameters.Add("@PASSWORD", SqlDbType.NChar).Value = password
        conn.Open()



        Dim reader = cmd.ExecuteReader()

        While reader.Read()
            Session("PatientId") = CInt(reader.Item("PatientId"))
            Session("Username") = CStr(reader.Item("Username"))
            found = CInt(reader.Item("PatientId"))
        End While

        reader.Close()
    End Using
    Return (found)
End Function

user.aspx 中标签中显示用户名的标签:

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    Label1.Text = Session("Username")
End Sub

我有另一个名为处方(链接表)的表,其中包含复合键 Patientid(来自 Patient 表)和 Medicine(来自医学表) - 两个外键。

当用户登录时,如何让 Medicine 表显示用户的相应药物以及 user.aspx 上表中的信息(名称、用途、说明)。我会使用 Toolbox 中的 gridview 来执行此操作吗?

不知道这里的解决方案哪里出了问题

错误:

【问题讨论】:

  • 您的问题解决了吗?

标签: mysql asp.net vb.net visual-studio-2013


【解决方案1】:

是的,只需在 user.aspx 页面的工具箱中添加 gridview 并在 user.aspx 页面的页面加载事件上运行以下代码行

Partial Class Pages_user
    Inherits System.Web.UI.Page

    Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs)

        If Not IsPostBack Then
            Dim conn As New System.Data.SqlClient.SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Laura\Final_proj\App_Data\surgerydb.mdf;Integrated Security=True;Connect Timeout=30")
            Dim cmdstring As String = "SELECT pt.PatientId, pt.ForeName, pt.Username, md.Name, md.Purpose, md.Instrcutions  " +
                                        "FROM Patient pt INNER JOIN prescription pr ON pt.PatientId = pr.PatientId  " +
                                        "INNER JOIN medicine md ON md.MedicineId = pr.MedicineId Where pt.PatientId  = @PatientId"
            Dim dt As New System.Data.DataTable()
            Dim da As New System.Data.SqlClient.SqlDataAdapter(cmdstring, conn)
            da.SelectCommand.Parameters.Add("@PatientId", System.Data.SqlDbType.Int).Value = CInt(Session("PatientId").ToString())
            conn.Open()
            da.Fill(dt)
            conn.Close()

            GridView1.DataSource = dt
            GridView1.DataBind()
        End If

    End Sub
End Class

你的 aspx 页面代码将是

<%@ Page Title="" Language="VB" MasterPageFile="~/Masterpages/MasterPage2.master" AutoEventWireup="true" CodeFile="user.aspx.vb" Inherits="Pages_user" %>

<asp:Content ID="Content1" ContentPlaceHolderID="title" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="Server">
    <style type="text/css">
        .auto-style2 {
            font-size: x-large;
        }
 </style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="contentbody" runat="Server" Inherits="Pages_user" CodeFile="Pages_user.aspx.vb">

    <p>
       <span class="auto-style2">Please Select Your Medication&nbsp;&nbsp;&nbsp;
        </span>

    </p>

    <asp:GridView ID="GridView1" runat="server" ></asp:GridView>

</asp:Content>

【讨论】:

  • 您好,Nazir - 感谢您抽出宝贵时间回答这个问题。我一直卡住你能帮我进一步吗?我在上面的问题中提供了错误(新图片)不确定我哪里出错了
  • 哪行代码抛出错误,抛出了什么错误,能分享一下吗
  • 嗨,Nazir :) 我提供了一张图片,显示了上面的代码和错误
  • 您应该将此代码放在页面加载事件中,而不是放在页面顶部
  • Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs) ' 把代码放在这里 End Sub
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-27
  • 2017-12-18
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多