这是代码后面有错误的页面
if (Session["username"] != null)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["registerCS"].ConnectionString;
string sql1 = "Select pemgrp from Profile where userID = '" + Session["username"].ToString() + "'";
string sql = "Select studname from Profile where pemgrp = '" + sql1 + "'";
SqlCommand cmd = new SqlCommand();
SqlDataReader dr;
DataTable dt = new DataTable();
cmd.CommandText = sql;
cmd.Connection = con;
//open connection and execute command
con.Open();
dr = cmd.ExecuteReader();
if (dr.Read())
{
lb_classmates.Text = dr[0].ToString();
}
}
但是,当我运行时,它给了我这个错误:
关键字“ where”附近的语法不正确。
说明:在执行期间发生未处理的异常
当前的Web请求。请查看堆栈跟踪以获取更多信息
有关错误及其在代码中起源的信息。
异常详细信息:System.Data.SqlClient.SqlException:不正确
关键字“ where”附近的语法。
最佳答案
由于您正在使用子查询因此
string sql = "Select studname from Profile where pemgrp = '" + sql1 + "'";
应该
string sql = "Select studname from Profile where pemgrp in (" + sql1+ ")";
并且您应该使用Parametereized queries来避免SQL injection。