我正在使用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. {{{{{{ {1}})对于(Doctor_L_Name
)?)然后选中一个复选框或下拉为是或否,如果选择是,则在“check_in”字段中插入“1”(Appt_Reason
)< / p>
我已经创建了文本框和按钮:
binary
在下面我进行了一些调试检查,以确保与sql server的通信正常,我可以使用以下连接设置将表信息提取到gridview中而不会出现问题:
<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" />
然后运行gridview:
<asp:sqldatasource id="sqldatasource3" runat="server" connectionstring="<%$ connectionstrings:PB_MedicalConnectionString %>"
selectcommand="select * from [Patients]" />
这会成功返回已输入数据库的“患者”。
创建/完成此任务的任何帮助都会很棒。我厌倦了寻找技巧,尝试,尝试失败,尝试失败......
谢谢, 埃里克
答案 0 :(得分:0)
以下是一些好建议:
不要在ASP页面中使用直接在线SQL。它总是被推荐,不再是多么容易和简单的调用,在SQL中使用存储过程并让asp.net页面使用参数调用存储过程。他们称之为“SQL注入”的东西是邪恶的,它允许用户通过输入框将恶意代码注入SQL服务器。
初始代码中有SELECT * FROM
。最好拼出你想要显示的列。我也可能在我的SQL存储过程中要求where appointmentdate = getdate()
,或者你坚持使用内联SQL,因为它不能被注入:selectcommand = "SELECT fieldname from appointments where appointmentdate =" & "'" & now.date.tostring() & "'"
如何搜索约会和登记的逻辑
假设您在default.aspx页面上,并且用户键入了他们的名称和ssn。您将从pass,firstname,lastname和ssn的代码中调用存储过程。如果它完全返回一行,那么response.redirect("checkIn.aspx?id=" & returnedIdFromSproc)
在该页面上,您可以使用两个按钮显示“是否要登录”的问题。是或否。在是的情况下,你打电话给杂志检查通过身份证,没有你response.redirect("default.aspx")
如果签入成功,则使用returnedIdFromSproc并将其传递到另一个sproc,这将使更新成为checkedIn。
这有帮助吗?