如何使用 ASP Classic 创建 "Select",其中数据源来自 Ms SQL 服务器并传递主键?
How to create "Select" using ASP Classic where data source from Ms SQL Server and passing primary key?
我是编程新手。我想使用 ASP Classic 构建一个 Web 应用程序,以从 SQL 服务器中提取数据并将其显示在网页上。
在我的 SQL Server Express 测试数据库中,我有 3 个 table 具有以下结构:
在 Person
table 中,有列 FirstName
和 LastName
。我使用 ASP Classic 创建了 select 菜单,使用的是我从互联网上获得的以下脚本:
<%
'Set Variable
Dim objCN 'ADO Connection Object
Dim objRS 'ADO Recordset Object
'Create a Connection Object
Set objCN = Server.CreateObject("ADODB.Connection")
'Connect to SQL Server Database, connection string in Global.asa file
objCN.Open Application("ConnStrTestDB")
'SQL Query for select Person Name
strSQLPerson="SELECT FirstName, LastName, PersonID FROM Persons ORDER BY FirstName ASC"
'Create Recordset
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQLPerson, objCN
%>
<form method="post" action="testDBSelectProductType.asp">
Choose Person Name <select name="FirstName">
<%
Do Until objRS.EOF
Response.Write("<option")
If objRS.Fields("FirstName")=FirstName Then
Response.Write("selected")
End If
Response.Write(">")
Response.Write(objRS.Fields("FirstName"))
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
</select>
<input type="submit" value="Click to continue..">
</form>
<%
'Close the Connection
objCN.Close
Set objCN = Nothing
%>
目前Select菜单只拉出FirstName
.
第一个问题,如何将LastName
添加到Select菜单中?我希望 select 菜单为 "FirstName LastName"。
第二个问题,如何将PersonID
(它是主键)包含到表单中?所以我可以将它用作下一个 ASP 页面的查询字符串参数。
真的很合适任何帮助。
谢谢
嗨,你能试试代码吗
<select>
<%
get_select=objRS.Fields("id")
Do while not objRS.EOF
%>
<option value="<%=objRS.Fields("id")%>" <%if get_select=objRS.Fields("id")then%> selected <%end if%>><%=objRS.Fields("FirstName")%> <%=objRS.Fields("LastName")%></option>
<%
objRS.MoveNext
Loop
%>
</select>
<%
Do Until objRS.EOF
Response.Write("<option value=""" & objRS.Fields("PersonID") & """")
If objRS.Fields("PersonID")=PersonID Then
Response.Write("selected")
End If
Response.Write(">")
Response.Write(objRS.Fields("FirstName") & " " & objRS.Fields("LastName"))
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
我喜欢这样。当应该选择项目时,我将在 option-tag 中插入 "selected" 一词。
<%
Do Until objRS.EOF
sSel="":If objRS.Fields("PersonID")=PersonID Then sSel=" selected "
Response.Write "<option value="""&objRs.Field("PersonID")&""" "&sSel&">"
Response.Write(objRS.Fields("FirstName") & " " & objRS.Fields("LastName"))
Response.Write "</option>"
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
玩得开心
迈克尔
非常感谢 Michael 和 A. Fabiani,你们的解决方案都有效。
这里是 Michael 的解决方案:
<%
'Set Variable
Dim objCN 'ADO Connection Object
Dim objRS 'ADO Recordset Object
'Create a Connection Object
Set objCN = Server.CreateObject("ADODB.Connection")
'Connect to SQL Server Database, connection string in Global.asa file
objCN.Open Application("ConnStrTestDB")
'SQL Query for select Person Name
strSQLPerson="SELECT FirstName, LastName, PersonID FROM Persons ORDER BY FirstName ASC"
'Create Recordset
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQLPerson, objCN
%>
<form method="post" action="testDBSelectProductType2.asp">
Choose Person Name <select name="PersonID">
<%
DO Until objRS.EOF
sSel="":If objRS.Fields("PersonID")=PersonID Then sSel=" selected "
Response.Write "<option value="""&objRS.Fields("PersonID")&""" "&sSel&">"
Response.Write(objRS.Fields("FirstName") & " " & objRS.Fields("LastName"))
Response.Write "</option>"
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
</select>
<input type="submit" value="Click to continue..">
</form>
<%
'Close the Connection
objCN.Close
Set objCN = Nothing
%>
下面是 A Fabiani 的解决方案:
<%
'Set Variable
Dim objCN 'ADO Connection Object
Dim objRS 'ADO Recordset Object
'Create a Connection Object
Set objCN = Server.CreateObject("ADODB.Connection")
'Connect to SQL Server Database, connection string in Global.asa file
objCN.Open Application("ConnStrTestDB")
'SQL Query for select Person Name
strSQLPerson="SELECT FirstName, LastName, PersonID FROM Persons ORDER BY FirstName ASC"
'Create Recordset
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQLPerson, objCN
%>
<form method="post" action="testDBSelectProductType2.asp">
Choose Person Name <select name="PersonID">
<%
Do Until objRS.EOF
Response.Write("<option value=""" & objRS.Fields("PersonID") & """")
If objRS.Fields("PersonID")=PersonID Then
Response.Write("selected")
End If
Response.Write(">")
Response.Write(objRS.Fields("FirstName") & " " & objRS.Fields("LastName"))
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
</select>
<input type="submit" value="Click to continue..">
</form>
<%
'Close the Connection
objCN.Close
Set objCN = Nothing
%>
然后我使用查询表单在下一个 ASP 页面上获取 PersonID,如下所示:
'Get PersonID value from Form
PersonID = Request.Form("PersonID")
我希望上面的代码可以帮助其他面临同样问题的人。
我是编程新手。我想使用 ASP Classic 构建一个 Web 应用程序,以从 SQL 服务器中提取数据并将其显示在网页上。
在我的 SQL Server Express 测试数据库中,我有 3 个 table 具有以下结构:
在 Person
table 中,有列 FirstName
和 LastName
。我使用 ASP Classic 创建了 select 菜单,使用的是我从互联网上获得的以下脚本:
<%
'Set Variable
Dim objCN 'ADO Connection Object
Dim objRS 'ADO Recordset Object
'Create a Connection Object
Set objCN = Server.CreateObject("ADODB.Connection")
'Connect to SQL Server Database, connection string in Global.asa file
objCN.Open Application("ConnStrTestDB")
'SQL Query for select Person Name
strSQLPerson="SELECT FirstName, LastName, PersonID FROM Persons ORDER BY FirstName ASC"
'Create Recordset
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQLPerson, objCN
%>
<form method="post" action="testDBSelectProductType.asp">
Choose Person Name <select name="FirstName">
<%
Do Until objRS.EOF
Response.Write("<option")
If objRS.Fields("FirstName")=FirstName Then
Response.Write("selected")
End If
Response.Write(">")
Response.Write(objRS.Fields("FirstName"))
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
</select>
<input type="submit" value="Click to continue..">
</form>
<%
'Close the Connection
objCN.Close
Set objCN = Nothing
%>
目前Select菜单只拉出FirstName
.
第一个问题,如何将LastName
添加到Select菜单中?我希望 select 菜单为 "FirstName LastName"。
第二个问题,如何将PersonID
(它是主键)包含到表单中?所以我可以将它用作下一个 ASP 页面的查询字符串参数。
真的很合适任何帮助。
谢谢
嗨,你能试试代码吗
<select>
<%
get_select=objRS.Fields("id")
Do while not objRS.EOF
%>
<option value="<%=objRS.Fields("id")%>" <%if get_select=objRS.Fields("id")then%> selected <%end if%>><%=objRS.Fields("FirstName")%> <%=objRS.Fields("LastName")%></option>
<%
objRS.MoveNext
Loop
%>
</select>
<%
Do Until objRS.EOF
Response.Write("<option value=""" & objRS.Fields("PersonID") & """")
If objRS.Fields("PersonID")=PersonID Then
Response.Write("selected")
End If
Response.Write(">")
Response.Write(objRS.Fields("FirstName") & " " & objRS.Fields("LastName"))
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
我喜欢这样。当应该选择项目时,我将在 option-tag 中插入 "selected" 一词。
<%
Do Until objRS.EOF
sSel="":If objRS.Fields("PersonID")=PersonID Then sSel=" selected "
Response.Write "<option value="""&objRs.Field("PersonID")&""" "&sSel&">"
Response.Write(objRS.Fields("FirstName") & " " & objRS.Fields("LastName"))
Response.Write "</option>"
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
玩得开心 迈克尔
非常感谢 Michael 和 A. Fabiani,你们的解决方案都有效。
这里是 Michael 的解决方案:
<%
'Set Variable
Dim objCN 'ADO Connection Object
Dim objRS 'ADO Recordset Object
'Create a Connection Object
Set objCN = Server.CreateObject("ADODB.Connection")
'Connect to SQL Server Database, connection string in Global.asa file
objCN.Open Application("ConnStrTestDB")
'SQL Query for select Person Name
strSQLPerson="SELECT FirstName, LastName, PersonID FROM Persons ORDER BY FirstName ASC"
'Create Recordset
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQLPerson, objCN
%>
<form method="post" action="testDBSelectProductType2.asp">
Choose Person Name <select name="PersonID">
<%
DO Until objRS.EOF
sSel="":If objRS.Fields("PersonID")=PersonID Then sSel=" selected "
Response.Write "<option value="""&objRS.Fields("PersonID")&""" "&sSel&">"
Response.Write(objRS.Fields("FirstName") & " " & objRS.Fields("LastName"))
Response.Write "</option>"
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
</select>
<input type="submit" value="Click to continue..">
</form>
<%
'Close the Connection
objCN.Close
Set objCN = Nothing
%>
下面是 A Fabiani 的解决方案:
<%
'Set Variable
Dim objCN 'ADO Connection Object
Dim objRS 'ADO Recordset Object
'Create a Connection Object
Set objCN = Server.CreateObject("ADODB.Connection")
'Connect to SQL Server Database, connection string in Global.asa file
objCN.Open Application("ConnStrTestDB")
'SQL Query for select Person Name
strSQLPerson="SELECT FirstName, LastName, PersonID FROM Persons ORDER BY FirstName ASC"
'Create Recordset
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQLPerson, objCN
%>
<form method="post" action="testDBSelectProductType2.asp">
Choose Person Name <select name="PersonID">
<%
Do Until objRS.EOF
Response.Write("<option value=""" & objRS.Fields("PersonID") & """")
If objRS.Fields("PersonID")=PersonID Then
Response.Write("selected")
End If
Response.Write(">")
Response.Write(objRS.Fields("FirstName") & " " & objRS.Fields("LastName"))
objRS.MoveNext
Loop
objRS.Close
Set objRS=Nothing
%>
</select>
<input type="submit" value="Click to continue..">
</form>
<%
'Close the Connection
objCN.Close
Set objCN = Nothing
%>
然后我使用查询表单在下一个 ASP 页面上获取 PersonID,如下所示:
'Get PersonID value from Form
PersonID = Request.Form("PersonID")
我希望上面的代码可以帮助其他面临同样问题的人。