当前位置: 代码迷 >> C# >> 各位新年快乐 , 在这里一个有关问题
  详细解决方案

各位新年快乐 , 在这里一个有关问题

热度:53   发布时间:2016-05-05 04:42:10.0
各位新年快乐 , 在这里请教大家一个问题
代码如下:
  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语句里''之间的是字符串,不会解析里面的变量的。