天天看点

基于三层架构开发DAL层问题总结基于三层架构开发DAL层问题总结

基于三层架构开发DAL层问题总结

1.面临多条件查询时sql脚本问题where 1 = 1的使用,可以简便sql脚本的连接

//说明当没有选择班级选项时classId = -1
public SqlDataReader GetReader(int classId, string studentId, string studentName)
{
	List<SqlParameters> paramList = new List<SqlParameters>();//因为不知道参数有几个,所有不能用数组
	string sql = "select StudentId, StudentName, Gender, ClassName from Students ";
	sql += "inner join StudentClass on Students.ClassId = Student.ClassId ";
	sql += "where 1 = 1 ";
	if(studentId.Lenght != 0)
	{
		sql += "and StudentId = @StudentId ";
		paramList.Add("@StudentId",studentId);
	}
	else
	{
		if(classId != -1)
		{
			sql += "and Students.ClassId = @ClassId ";
			paramList.Add("@ClassId",classId);
		}
		if(studentName.Length != 0 && studentName != null)
		{
			sql += "and StudentName like @StudentName + '%' ";
			paramList.Add("@StudentId",studentId);
		}
	}
}