C# “=”附近的语法不正确错误:dr=cmd.ExecuteReader();
这是我在MasterPage.master上的搜索按钮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
<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;
我不希望他们进来;删除表学生-作为用户名。@帕特里克霍夫曼当然,你注意到了,我只指出了异常的原因。谢谢你的否决:我不希望他们加入;删除表学生-作为用户名。@帕特里克霍夫曼当然,你注意到了,我只指出了异常的原因。谢谢你的否决投票: