Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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# “=”附近的语法不正确错误:dr=cmd.ExecuteReader();_C#_Asp.net - Fatal编程技术网

C# “=”附近的语法不正确错误:dr=cmd.ExecuteReader();

C# “=”附近的语法不正确错误:dr=cmd.ExecuteReader();,c#,asp.net,C#,Asp.net,这是我在MasterPage.master上的搜索按钮 <asp:TextBox ID="Search" style="width:339px ; height: 20px;" runat="server" placeholder="Search Woooo" class="textbox" formnovalidate="formnovalidate"></asp:TextBox> <asp:ImageButton ID="ImageButtonSearch" r

这是我在MasterPage.master上的搜索按钮

<asp:TextBox ID="Search" style="width:339px ; height: 20px;" runat="server" placeholder="Search Woooo" class="textbox" formnovalidate="formnovalidate"></asp:TextBox>
<asp:ImageButton ID="ImageButtonSearch" runat="server" ImageUrl="~/Images/Icons/search.png" Width="22px" OnClick="ImageButtonSearch_Click" CausesValidation="False" />
search.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

public partial class Default2 : System.Web.UI.Page
{
    string cs = Global.CS;

    protected void Page_Load(object sender, EventArgs e)
    {
        string search = Request.QueryString["search"];

        if (!Page.IsPostBack)
        {
            string xx = "";
            string sql = @"SELECT studentID FROM Student WHERE username == '"+ search + "'";

            SqlConnection con = new SqlConnection(cs);
            SqlCommand cmd = new SqlCommand(sql, con);

            con.Open();
            SqlDataReader dr;
            dr = cmd.ExecuteReader();

            while (dr.Read())
            {
                xx += string.Format("{0}",dr["sudentID"]);
            }

            dr.Close();
            con.Close();

            test.InnerHtml = xx;
        }
    }
}

我想尝试根据搜索框中的用户名进行搜索。但在我点击搜索按钮后,它在“=”附近显示了不正确的语法。源错误:dr=cmd.ExecuteReader;。我已经在很多地方搜索了这个问题,但我还是不明白。我对c还是新手,问题是在T-SQL中需要一个等号: @从用户名为“+search+”的学生中选择studentID

用户名旁边=


UPD正如帕特里克·霍夫曼(Patrick Hofman)在上文中指出的那样,您可能希望研究SQL注入以及防范SQL注入的常用方法:

问题在于T-SQL中需要一个等号: @从用户名为“+search+”的学生中选择studentID

用户名旁边=


UPD正如帕特里克·霍夫曼(Patrick Hofman)在上面指出的那样,您可能希望研究SQL注入以及防范它的常用方法:

您将SQL与C混合使用。等式比较是使用单个=

更重要的是,您容易受到SQL注入的攻击。你应该先处理好这件事

SQL应该如下所示:

cmd.Parameters.Add("@username").Value = search;
从username=@username的学生中选择studentID 您应该在C代码中添加参数@username,如下所示:

cmd.Parameters.Add("@username").Value = search;

您正在将SQL与C混合使用。相等性比较是使用单个=

更重要的是,您容易受到SQL注入的攻击。你应该先处理好这件事

SQL应该如下所示:

cmd.Parameters.Add("@username").Value = search;
从username=@username的学生中选择studentID 您应该在C代码中添加参数@username,如下所示:

cmd.Parameters.Add("@username").Value = search;

我不希望他们进来;删除表学生-作为用户名。@帕特里克霍夫曼当然,你注意到了,我只指出了异常的原因。谢谢你的否决:我不希望他们加入;删除表学生-作为用户名。@帕特里克霍夫曼当然,你注意到了,我只指出了异常的原因。谢谢你的否决投票: