C# 执行SQL查询后将参数传递到url
我最近问了一个关于如何编写查询的问题,谢天谢地你们回答了我(谢谢) 我在一个WML网站上工作,所以我需要传递查询中的值 我找到了一种方法(如下代码所示),但它不起作用C# 执行SQL查询后将参数传递到url,c#,asp.net,sql,wml,C#,Asp.net,Sql,Wml,我最近问了一个关于如何编写查询的问题,谢天谢地你们回答了我(谢谢) 我在一个WML网站上工作,所以我需要传递查询中的值 我找到了一种方法(如下代码所示),但它不起作用 <% //this Query was provided earlier in the previous question. string queryString = "select st.firstname + ' ' + st.lastname,se.year, c.coursename
<%
//this Query was provided earlier in the previous question.
string queryString = "select st.firstname + ' ' + st.lastname,se.year, c.coursename,c.NumberOfCredits,ri.mark from Students st inner join RegisteredIn ri on ri.StudentId=st.id inner join Semester se on se.id=ri.SemesterId inner join Courses c on c.id=se.id ";
接收参数的页面将类似于
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="StudentInfo.aspx.cs" Inherits="StudentInfo" %>
<wml>
<card>
<p><% Response.Write(Request.Params["StudentId"]);%></p>
<p><b>firstname:</b> <% Response.Write(Request.Params["firstname"]);%></p>
<p><b>lastname:</b> <% Response.Write(Request.Params["lastname"]);%></p>
<p><b>coursename:</b> <% Response.Write(Request.Params["coursename"]);%></p>
<p><b>credits:</b> <% Response.Write(Request.Params["credits"]);%></p>
<p><b>Mark:</b> <% Response.Write(Request.Params["mark"]);%></p>
</card>
</wml>
我的问题是:
-如何将查询中的值提取到URL中?
-如何在WML或ASP中显示多个值?(因为结果将是多行和多个值)
提前感谢您您的代码现在只读取数据库中的第一行。若要读取所有行,必须在循环中调用Reader(),例如:
while(reader.Read())
{
string _firstname = reader[0].ToString();
string _lastname = reader[1].ToString()
...
}
但我担心,将所有这些信息作为URL中的参数传递确实不是一个好主意。您必须以某种方式连接来自所有行的结果,并在另一个页面上将它们拆分回各个值,这在我看来是多余的。此外,URL长度通常是有限的,所以如果查询返回的行数超过几行,它将无法工作。为什么要在URL中传输整个查询结果?更常见的做法是(也更容易做到)只在URL中传输学生的标识符(或您想显示的任何内容),然后在第二页再次从数据库中读取数据
更新:
若我理解正确,您实际的问题不是如何将querystring中的数据库查询结果传递到另一个页面,而是希望在页面上显示查询结果。第一步是在第二页的表单上添加适当的控件(标签、DataGridView等)。然后,根据所使用的控件,您可以将控件绑定到数据源,也可以在StudentInfo.aspx文件中的Page_Load等方法中手动向控件添加数据。但由于这个话题和你们第一次问的完全不同,我建议你们再问一个问题。这个话题在这里也被讨论过很多次,所以你可以先看一看。请告诉我为什么我得到了-2,我想修复它。-1。阿林,你能给我做7行的样品吗?如果你想发布代码审查的东西,有专门的网站-。另外,若你们能检查一下你们的班次/上限锁(它在你们的键盘上似乎是半随机的),那个么这个问题看起来会更好。最后,重读你的问题,看看你问的问题是否清楚(“不起作用”/“问题在哪里”通常是遗漏问题的症状)。到底什么不起作用?现在重定向被注释掉了。它是否重定向,但查询字符串为空?另外,我看不到@StudentId参数在SQL中的使用位置,因此它似乎得到了所有学生的支持。@arin,您的示例仍然非常长,完全不需要发布所有代码-使其尽可能小,最好是可编译的,显示反映在标题中的特定问题。。。您最后的评论意味着第29行出现了与您的问题标题无关的错误。好吧,我明白您的意思,但我已经厌倦了将查询结果直接显示到页面中(换句话说,将其显示在与WML卡相同的页面中),但它不起作用,告诉我,如果我想像你说的那样,我想从数据库中读取数据,如何将其存储在变量中,以便打印出来?
First Semester 2010
Student : Arin Rizk
Course Name No. of Credit Mark
AAA 3 65
BBB 3 23
CCC 3 65
DDD 3 58
EEE 3 70
Your GPA for this semster is 3.12
while(reader.Read())
{
string _firstname = reader[0].ToString();
string _lastname = reader[1].ToString()
...
}