代码如下:
public List<Results> ReviewStudentResult(string subjectNo,string StuName)
{
StringBuilder sb = new StringBuilder();
sb.Append(@"select* from Result a inner join subject s on(s.SubjectId=a.Subjectid) inner join student b on(a.studentno=b.studentno) where 1=1");
if (subjectNo != "-1")
{
sb.Append(" and [email protected]");
}
if (!string.IsNullOrEmpty(StuName))
{
sb.Append(" and b.StudentName like [email protected]%'");
}
SqlParameter[] sql={new SqlParameter("@subjectNo",subjectNo),
new SqlParameter("@StudentName",StuName)};
return GetXscx(sb.ToString(),sql);
}
public static List<Results> GetXscx(string yuju,params SqlParameter[] par)
{
using (DBHelper.conn1)
{
SqlCommand cmd = new SqlCommand(yuju, DBHelper.conn);
cmd.Parameters.AddRange(par);
DBHelper.OpenConn1();
SqlDataReader s = cmd.ExecuteReader();
List<Results> list = new List<Results>();
while (s.Read())
{
Results r = new Results();
r.StudentNo = s["StudentName"].ToString();
r.SubjectNo = s["SubjectName"].ToString();
r.ExamDate =(DateTime)s["ExamDate"];
r.StudentResult = s["StudentResult"].ToString();
list.Add(r);
}
s.Close();
// DBHelper.CloseConn1();
return list;
}
当stuName在数据库里也有数据存在,却在


里面查不出来,断点出来 的问题是:
select* from Result a inner join subject s on(s.SubjectId=a.Subjectid) inner join student b on(a.studentno=b.studentno) where 1=1 and b.StudentName like [email protected]%' [email protected] 求大哥大姐解决,万分感谢
------解决思路----------------------
[email protected]%' 直接写成 @StudentName
new SqlParameter("@StudentName",StuName)};写成 new SqlParameter("@StudentName","%"+StuName+"%")};
sql语句里''之间的是字符串,不会解析里面的变量的。