首页 > 代码库 > Data层相关问题 & JS循环取值
Data层相关问题 & JS循环取值
第一次写博客,里面是自己工作中碰到的问题及总结的知识点,便于自己以后回顾,技术大牛们请直接忽略这篇文章,也希望能帮助到想我这样的小白!
Data层相关问题总结:
1. 代码管理用的是 VSS 2005;
改好程序后,必须要重新生成下;(注意文件之间的引用关系的顺序),程序改的是对的,也在本地保存了,断点调试的时候还是之前没有改的代码,郁闷了好久。别的引用没有更新,害惨我了。
第一次碰到,不了解,白白浪费了两天的时间,两天的时间,还破坏了我周末的心情!
2. SQL语句写好后,注意起中英文之间的输入:
Data:
1 //把字符串转化成Int类型的值; 2 searchSql.AppendLine("AND (CHARINDEX(‘,‘ +LTRIM(A.DeptCompilationID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptCompilationID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptCompilationID),(@DeptID))>0)");3 searchSql.AppendLine("or ((CHARINDEX(‘,‘ +LTRIM(A.DeptCompilationID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptCompilationID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptCompilationID),(@DeptID))>0) and (CHARINDEX(‘,‘ +LTRIM(A.DeptWorkID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptWorkID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptWorkID),(@DeptID))>0))");4 searchSql.AppendLine("OR ((CHARINDEX(‘,‘ +LTRIM(A.DeptWorkID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptWorkID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptWorkID),(@DeptID))>0) and (DeptCompilationID is null or DeptCompilationID=0 or (CHARINDEX(‘,‘ +LTRIM(A.DeptCompilationID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptCompilationID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptCompilationID),(@DeptID))>0)))");//and A.DeptCompilationID is null5 comm.Parameters.Add(SqlHelper.GetParameterFromString("@DeptID", searchModel.Dept));
SQL:
1 select distinct top 100 DeptID,* from officedba.EmployeeInfo A --where DeptID in (247,248)2 where3 (CHARINDEX(‘,‘ +LTRIM(A.DeptCompilationID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptCompilationID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptCompilationID),(@DeptID))>0)--A.DeptCompilationID = @DeptID)4 OR ((CHARINDEX(‘,‘ +LTRIM(A.DeptCompilationID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptCompilationID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptCompilationID),(@DeptID))>0) and (CHARINDEX(‘,‘ +LTRIM(A.DeptWorkID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptWorkID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptWorkID),(@DeptID))>0))5 OR ((CHARINDEX(‘,‘ +LTRIM(A.DeptWorkID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptWorkID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptWorkID),(@DeptID))>0) and (DeptCompilationID is null or DeptCompilationID=0 or (CHARINDEX(‘,‘ +LTRIM(A.DeptCompilationID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptCompilationID)+‘,‘,(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptCompilationID),(@DeptID))>0))) 6 7
关于中英文之间的输入法的问题,可害苦我了,就查“)”是中文的还是英文的浪费了我十几分钟,既费神,又费力,关键是浪费心情;以后只要是在VS或SQL中写代码,一定要切换到英文输入法下,不许再搜狗输入法下偷懒写;
以后一定要多注意细节,细节,细节的东西!
3. 用户未处理SqlException,在将 nvarchar 值 ‘247,248‘ 转换成数据类型 int 时失败。
解决问题的相关查找:http://bbs.csdn.net/topics/310077684
(CHARINDEX(‘,‘ +LTRIM(A.DeptWorkID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptWorkID)+‘,‘,(@DeptID))>0)
JS循环取值总结:
1.
其中有三列的值(含有Total字符串的列)是本行前面的所有和,不需要改动;
(
如果需要修改的是三列中的其中一列,默认是不改变它的值的,但是没有弹出alert提示,日后研究;
表有三行,最后一行为合计等等。。。 不需要修改;
只需要遍历“史小沁”和“高万顺”两行就行;
如果输入原工资为最后一行的数据,会有alert提示;
)
JS:
1 function AllUpdate() { 2 3 var table = document.getElementById("tblSalaryDetail"); //取到表中的数据 4 //获取表格行数 5 var tableCount = table.rows.length; 6 var CountNum = 0; 7 var NowSal = document.getElementById("JBGZ").value.Trim(); //显示“原工资”文本框 8 var ModifedSal = document.getElementById("JiangJ").value.Trim();//显示“修改后工资”文本框 9 // var textinput = table.getElementsByTagName("input");10 if (ModifedSal != "") 11 {12 for (var row = 1; row < tableCount; row++) //遍历表的行13 {14 var rowIndex = table.rows[row - 1];15 var textinput = rowIndex.getElementsByTagName("input"); //用“input”属性取到input对应的每一个值16 for (var i = 1; i < textinput.length; i++) //遍历某一行的input文本框17 {18 if (textinput[i].value =http://www.mamicode.com/= parseInt(NowSal) )
// && (textinput.id.indexOf(‘TotalOne_‘) <= -1) && (textinput.id.indexOf(‘TotalTwo_‘) <= -1) && (textinput.id.indexOf(‘Total_‘) <= -1)) //parseInt显示的把文本框中的内容转化为Int类型的19 {20 textinput[i].value = http://www.mamicode.com/ModifedSal; //赋值21 CountNum++;22 } 23 }24 CalculateTotalSalary("", row);25 }26 if (CountNum == 0) 27 {28 alert("没有找到与你要求相符的数据 ! \n 请您重新输入进行查找。");29 }30 }
1 function AllUpdate() { 2 table = document.getElementById("tblSalaryDetail"); 3 4 // var SubTotal = table.getElementsByTagName("Total_"); 5 6 //获取表格行数 7 var tableCount = table.rows.length; 8 9 var CountNum = 0;10 11 var NowSal = document.getElementById("JBGZ").value.Trim();12 var ModifedSal = document.getElementById("JiangJ").value.Trim();13 14 // var Totalone = table.rows[0].cells[9].innerHTML;15 // var Totaltwo = table.rows[0].cells[16].innerHTML;16 // var Totalthree = table.rows[0].cells[17].innerHTML;17 18 // var Total = "Total";19 //&& (table[i].id).substring(0,5) != Total20 21 var textinput = table.getElementsByTagName("input");22 23 // var Totalone = textinput[9].value;24 25 if (ModifedSal != "") {26 27 for (var row = 1; row < tableCount-1; row++) {28 29 for (var i = 1; i < textinput.length; i++) {30 31 var str = textinput[i].value;32 // var one = textinput.id.indexof(‘TotalOne_‘);33 // var two=("TotalOne_").indexof(‘TotalOne_‘);34 35 if (textinput[i].value =http://www.mamicode.com/= parseInt(NowSal)) //&& (textinput.id.indexof(‘TotalOne_‘) <= -1) && (textinput.id.indexof(‘TotalTwo_‘) <= -1) && (textinput.id.indexof(‘Total_‘) <= -1)36 {37 38 textinput[i].value =http://www.mamicode.com/ ModifedSal;39 CountNum++;40 } 41 }42 CalculateTotalSalary("", row);43 }44 45 if (CountNum == 0) {46 47 alert("没有找到与你要求相符的数据 ! \n 请您重新输入进行查找。");48 }49 50
1 if (ModifedSal != "") { 2 3 for (var row = 1; row < tableCount-1; row++) { 4 5 for (var i = 1; i < textinput.length; i++) { 6 7 var str = textinput[i].value; 8 if (textinput[i].value =http://www.mamicode.com/= parseInt(NowSal)) //&& (textinput.id.indexof(‘TotalOne_‘) <= -1) && (textinput.id.indexof(‘TotalTwo_‘) <= -1) && (textinput.id.indexof(‘Total_‘) <= -1) 9 {10 textinput[i].value =http://www.mamicode.com/ ModifedSal;11 CountNum++;12 } 13 }14 CalculateTotalSalary("", row);15 }16 17 if (CountNum == 0)18 19 {20 21 alert("没有找到与你要求相符的数据 ! \n 请您重新输入进行查找。");22 }23 }
错误的:
1 for (var row = 1; row < tableCount; row++) 2 { 3 //批量更新工资 4 5 row = table.rows[row]; 6 7 // alert(row); 8 9 for (var col = 1; col < row.cells.length; col++) {10 11 // alert(col);12 // alert(row.cells[col].innerHTML);13 14 if (row.cells[col].innerHTML == valu) {15 16 row.cells[col].innerHTML = v1;17 18 CalculateTotalSalary("", row);19 20 }21 }22 23 24 if (table.rows[row].style.display != "none") 25 {26 document.getElementById(str+"_"+row).value=http://www.mamicode.com/valu;27 CalculateTotalSalary("",row);28 }
Data层相关问题 & JS循环取值