Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 执行SQL查询后将参数传递到url_C#_Asp.net_Sql_Wml - Fatal编程技术网

C# 执行SQL查询后将参数传递到url

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

我最近问了一个关于如何编写查询的问题,谢天谢地你们回答了我(谢谢)

我在一个WML网站上工作,所以我需要传递查询中的值 我找到了一种方法(如下代码所示),但它不起作用

    <%   
//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()
    ...
}