问题判断那些年,我们遇到的傻逼问题
本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~
人呢,总是在问题中一直的成长。下面跟大家分享几个在做项目过程当中遇到的傻逼问题。
1、找不到存储过程
当遇到这个问题时,我的第一反应就是存储过程名字不对。于是我把存储过程名和数据库中的名字比对了好几遍,都没有发现任何问题。而且,我把错误提示框中的存储过程名复制,然后在数据库中执行,它居然可以顺遂执行。顿时我就无语了,开始怀疑最初的判断,难道不是存储过程名的问题?于是我开始查代码,检查过程堪称是艰辛啊。朋友们,你能猜到问题出在哪里吗?经过长时间的尽力,最后终于发现了问题之地点——存储过程名前多了一个空格。尼玛呀!这都可以,让人无语!
2、浏览器缓存问题
说到缓存,对它还是有那么一点点的了解,每次遇到关于缓存的问题,关闭浏览器后再重新打开就OK了。可是,有一次,我变动了JS文件,然后在IE中查看变动效果,F5刷新,未看到效果,嘿嘿一笑,缓存问题!关闭浏览器,重新查看效果,仍未看到效果。此时有那么一种潜意识,就是我重新打开了浏览器,确定不是缓存的问题。然后我那个各种找问题啊,最后转了一圈返来,手动清理了缓存,运行!我勒个去,还真是缓存问题啊!这总潜意识,够坑爹!
3、字符串长度问题
我们做了一个组合查询的功能,然后把判断哪些下拉框起作用的工作交给了存储过程。下面是界面和存储过程当中的代码:
Declare @sqlStr VARCHAR(300) --存储sql语句 SET @sqlStr = 'SELECT MAX(SpecializedScheduleID) AS SpecializedScheduleID,CampusName,BuildingName,RoomName,CourseName,GradeName,TeachClassName,' + 'TeacherName,SchoolYear,Semester,StartWeek,StopWeek,OddEven,WorkDay,BeginTimeSectionName,' + 'EndTimeSectionName FROM VB_SpecializedCourseScheduleInfo '+ 'WHERE SchoolYear ='+'''' + @schoolYear + ''''+ ' AND Semester ='+'''' + @semester + ''''+ ' AND WorkDay =' + '''' + @week + '''' --合成sql语句,默认按照学年、学期、礼拜、单双周查询 --+ ' AND OddEven =' + '''' + @oddEven + '''' IF (@gradeID!='') --判断是不是选择年级 SET @sqlStr = @sqlStr + ' AND GradeID ='+'''' + @gradeID+'''' IF (@teacherCollegeID!='') --判断是不是选择教师所属学院 SET @sqlStr = @sqlStr + ' AND TeacherCollegeID ='+'''' + @teacherCollegeID+'''' IF (@teacherID!='') --判断是不是选择教师 SET @sqlStr = @sqlStr + ' AND TeacherID ='+'''' + @teacherID+'''' IF (@courseCollegeID!='') --判断是不是选择课程所属学院 SET @sqlStr = @sqlStr + ' AND CourseCollegeID ='+'''' + @courseCollegeID+'''' IF (@courseCategoryID !='') ---判断是不是选择课程类别:归属。指的是选修课性子:人文、社科等 SET @sqlStr = @sqlStr + ' and CourseCategoryID ='+'''' + @courseCategoryID+'''' IF(@courseTypeID!='') --判断是不是选择课程类型:理论、试验。 SET @sqlStr = @sqlStr + ' and CourseTypeID ='+'''' + @courseTypeID+'''' IF(@coursePropertyID!='') --判断是不是选择课程性子:专业课、选修课 SET @sqlStr = @sqlStr + ' and CoursePropertyID='+'''' + @coursePropertyID +'''' IF(@courseName !='') --判断是不是课程名称 SET @sqlStr = @sqlStr + ' and CourseName like ''%' + @courseName + '%''' IF (@campusID!='')--判断是不是选择校区 SET @sqlStr = @sqlStr + ' AND CampusID ='+'''' + @campusID+'''' IF (@buildingID!='')--判断是不是选择修筑 SET @sqlStr = @sqlStr + ' AND BuildingID ='+'''' + @buildingID+'''' IF (@roomID!='')--判断是不是选择房间 SET @sqlStr = @sqlStr + ' AND RoomID ='+'''' + @roomID+'''' IF (@timeSectionBeginID!='')--判断是不是选择开始节次 SET @sqlStr = @sqlStr + ' AND ClassBegin ='+'''' + @timeSectionBeginID+'''' IF (@timeSectionEndID !='')---判断是不是选择结束节次 SET @sqlStr = @sqlStr + ' AND ClassEnd ='+'''' + @timeSectionEndID+'''' IF (@oddEven !='')---判断是不是选择结束节次 SET @sqlStr = @sqlStr + ' AND OddEven ='+'''' + @oddEven+'''' SET @sqlStr = @sqlStr + ' GROUP BY CampusName,BuildingName,RoomName,CourseName,GradeName,' + 'TeachClassName,TeacherName,SchoolYear,Semester,StartWeek,StopWeek,OddEven,' + 'WorkDay,BeginTimeSectionName,EndTimeSectionName' EXEC (@sqlStr)
这个问题特殊神奇,它是神马情况呢?我们选择查询条件后, 点击查询按钮,可结果却是偶然候正常显示,偶然涌现错误,而且错误提示还不一样,一会是“and 四周有语法错误”,一会又是“GROUP BY四周有语法错误”。我认认真真、仔仔细细的检查N遍代码,都没有发现任何问题,可是错误仍然会涌现。兄弟们,不知道你们能否体会到我当时的那种心境!经过多次测试,我发现条件下拉框使用少的话,不会涌现错误,一旦使用比拟多的下拉框时就会出问题。最终我还是发现了问题之地点。原来是“Declare @sqlStr VARCHAR(300)
”涌现了问题,字符串长度给的太小了,选择下拉框超越一定数量后,sql语句长度就会超出300,错误也就由此发生。尼玛,这么个小破问题,耽误了哥多少工夫!
4、事务日记已满
看看错误图片:
事务日记已满?这类问题还是头一次遇到。上网查了查,人家都说是空间的问题。我查看了一下数据库地点服务器,果然有问题,服务器C盘空间只剩下不幸的几兆了,能不出问题嘛。于是我删除了一些C盘的东东,誊出2个G的空间。心想:这回可以了吧。再次运行程序,执行了一些操作,Perfect,木有问题。可是,当我再次执行刚才出错误的操作时,一样的问题又出来了。我查看了一下日记文件,所占空间684兆,允许最大空间是700兆,心想:10几兆的空间,记录这么一次的操作,怎么也够了吧!可是呢,问题还真出在了这里,当我把最大空间调到7000兆时,问题完善解决了!回头一看日记文件,发现它居然增长了30几兆。这回算是开眼了,日记文件这增长速度够惊人的,难怪出问题呢!好吧,我承认,是我见识浅短了!
当然,在做的过程当中,遇到的问题远不止这么,这里只是挑了几个比拟傻逼的问题跟大家分享一下。不知道大家有木有遇到过一样的问题?
最后,想说一句话:孩子,你还是太年青了!
文章结束给大家分享下程序员的一些笑话语录:
一位程序员去海边游泳,由于水性不佳,游不回岸了,于是他挥着手臂,大声求.救:“F1,F1!”
---------------------------------
原创文章 By
问题和判断
---------------------------------