【发布时间】:2013-06-20 16:21:56
【问题描述】:
Studentname:当用户输入Id或name并点击按钮时,应该显示详细信息......如何?
这里我的 OR 子句在 select 语句中不起作用:
public partial class StudentView : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["DBCS"].ConnectionString);
protected void Button1_Click(object sender, EventArgs e)
{
string str = "SELECT Registration.UsrFLname, Registration.UsrAddress, Students.STUID, Materials.BookID, Materials.BookName, Courses.CourseName, Courses.CourseFee FROM Courses INNER JOIN Materials ON Courses.BookID = Materials.BookID INNER JOIN Students ON Courses.STUID = Students.STUID AND Materials.STUID = Students.STUID INNER JOIN Registration ON Students.STUID = Registration.STUID AND Registration.UsrFLname = '" + TextBox1.Text + "' OR Students.STUID = '" + TextBox1.Text + "'";
con.Open();
SqlCommand cmd = new SqlCommand(str, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, str);
GDStudents.DataSource = ds;
GDStudents.DataBind();
}
}
谁能帮忙解决这个问题!!
提前致谢!!
【问题讨论】:
-
定义“不工作”。此外,此代码中存在 SQL 注入安全漏洞。
-
看在上帝的份上,使用参数化查询!
-
另外,您找到键盘上的 Enter/Return 键了吗?你听说过 SQL 注入吗?
-
等一下……让我停止吃午餐来为你做你的工作。我喜欢回答问题,但实际上,这看起来你在放弃并在这里发帖之前没有给它旧的“大学”尝试。
-
加上 where 子句可能会更好读。
标签: asp.net sql-server