0

我正在使用 Visual Web Developer 2010 为学校创建一个“项目”。这很简单。

这个想法是用于医疗机构的患者自助登记亭。

我已经使用以下内容创建了我的 sql 数据库:

Table: Doctors
Fields: Doctor_ID (PK), Doctor_F_Name, Doctor_L_Name

Table: Patients
Fields: Patient_ID (PK), Patient_F_Name, Patient_L_Name

Table: Appointments
Fields: Appointment_ID (PK), Appt_Day, Appt_Mo, Appt_Yr, Patient_ID (SK), Doctor_ID (SK), Appt_Time, Appt_Reason, Checked_In

所以代码的第一页有一个简单的布局,有 3 个文本输入框,要求输入患者的名字、姓氏和 SSN 的最后 4 个 ( Patient_ID) 和一个提交按钮。

我希望将文本框中的数据用于与数据库进行比较并提出问题“您今天在 ( Appt_Time) 与 (Dr. Doctor_L_Name) 为 ( Appt_Reason) 签到吗?) 然后是复选框或下拉是或否,如果选择是,则将“1”(binary)插入checked_in字段

我已经创建了文本框和按钮:

<script runat="server">
sub submit (sender as object, e as eventargs)
lbl1.text= "Hello, " & Textbox1.text &" " & Textbox2.Text
end sub
</script>

<h2> First Name </h2>
<asp:textbox id=Textbox1" runat"server" />
<h2> Last Name </h2>
<asp:textbox id=Textbox2" runat"server" />
<h2> Last 4 of SSN </h2>
<asp:textbox id=Textbox3" runat"server" />
<asp:button: ID="Button1" onclick="submit" runat="server" text="submit" />
<asp::label id="lbl1" runat="server" />

在此之下,我进行了一些调试检查,以确保与 sql server 的通信正常,并且我可以使用以下连接设置将表信息毫无问题地拉入 gridview:

<asp:sqldatasource id="sqldatasource3" runat="server" connectionstring="<%$ connectionstrings:PB_MedicalConnectionString %>"
selectcommand="select * from [Patients]" />

然后运行一个gridview:

<asp:gridview id="gridview1" runat="server" datakeyNames="Patient_ID" Datasource="sqldatasource3">
<columns>
<asp:boundfield datafield="Patient_ID" HeaderText="Patient_ID" ReadOnly="True" SortExpression=""Patient_ID" />
<asp:boundfield datafield="Patient_F_Name" HeaderText="Patient_F_Name" ReadOnly="True" SortExpression=""Patient_F_Name" />
<asp:boundfield datafield="Patient_L_Name" HeaderText="Patient_L_Name" ReadOnly="True" SortExpression=""Patient_L_Name" />
</columns>
<//asp:gridview>

这将成功返回已输入数据库的“患者”。

任何帮助创建/完成它都会很棒。我已经厌倦了寻找技巧,尝试,失败搜索,尝试,失败......

谢谢,埃里克

4

1 回答 1

0

这里有一些很好的建议:

不要在 ASP 页面中使用直接内嵌 SQL。它总是建议,不再是多么容易和简单的调用,使用 SQL 中的存储过程并让 asp.net 页面调用带有参数的存储过程。他们称之为“SQL 注入”有一个邪恶的东西,它允许用户通过输入框将恶意代码注入您的 SQL 服务器。

您的初始代码中有一个SELECT * FROM。最好拼出你想要显示的列。我也可能会where appointmentdate = getdate()在我的 SQL 存储过程中要求,或者如果你坚持使用内联 SQL,因为它不能被注入:selectcommand = "SELECT fieldname from appointments where appointmentdate =" & "'" & now.date.tostring() & "'"

如何搜索约会和签到的逻辑

假设您在 default.aspx 页面上,用户输入他们的姓名和 ssn。您将从通过的代码中调用存储过程,firstname、lastname 和 ssn。如果它正好返回一行response.redirect("checkIn.aspx?id=" & returnedIdFromSproc)

在该页面上,您可以通过两个按钮显示“您想登记入住”的问题。是或否。在 Yes 后面,您调用 sproc 以通过 ID 签入,没有您 response.redirect("default.aspx")

如果签入成功,则使用返回的IdFromSproc 并将其传递到另一个存储过程中,这将使更新成为签入状态。

这有帮助吗?

于 2013-07-22T22:52:20.207 回答