那些年,我们遇到的傻逼问题

来源:互联网 发布:64位windows安装步骤 编辑:程序博客网 时间:2024/05/19 09:18

 人呢,总是在问题中不断的成长。下面跟大家分享几个在做项目过程中遇到的傻逼问题。

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几兆。这回算是开眼了,日志文件这增长速度够惊人的,难怪出问题呢!好吧,我承认,是我少见多怪了!


当然,在做的过程中,遇到的问题远不止这么,这里只是挑了几个比较傻逼的问题跟大家分享一下。不知道大家有木有遇到过同样的问题?

最后,想说一句话:孩子,你还是太年轻了!