
正文
Data层相关问题 & JS循环取值
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
第一次写博客,里面是自己工作中碰到的问题及总结的知识点,便于自己以后回顾,技术大牛们请直接忽略这篇文章,也希望能帮助到想我这样的小白!
Data层相关问题总结:
1. 代码管理用的是 VSS 2005;
改好程序后,必须要重新生成下;(注意文件之间的引用关系的顺序),程序改的是对的,也在本地保存了,断点调试的时候还是之前没有改的代码,郁闷了好久。别的引用没有更新,害惨我了。
第一次碰到,不了解,白白浪费了两天的时间,两天的时间,还破坏了我周末的心情!
2. SQL语句写好后,注意起中英文之间的输入:
Data:
//把字符串转化成Int类型的值;
searchSql.AppendLine("AND (CHARINDEX(',' +LTRIM(A.DeptCompilationID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptCompilationID)+',',(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptCompilationID),(@DeptID))>0)");
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))");
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 null
comm.Parameters.Add(SqlHelper.GetParameterFromString("@DeptID", searchModel.Dept));
SQL:
select distinct top 100 DeptID,* from officedba.EmployeeInfo A --where DeptID in (247,248)
where
(CHARINDEX(',' +LTRIM(A.DeptCompilationID),(@DeptID))>0 or CHARINDEX(RTRIM(A.DeptCompilationID)+',',(@DeptID))>0 or CHARINDEX(LTRIM(A.DeptCompilationID),(@DeptID))>0)--A.DeptCompilationID = @DeptID)
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))
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)))
关于中英文之间的输入法的问题,可害苦我了,就查“)”是中文的还是英文的浪费了我十几分钟,既费神,又费力,关键是浪费心情;以后只要是在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:
function AllUpdate() { var table = document.getElementById("tblSalaryDetail"); //获取表格行数
var tableCount = table.rows.length; var CountNum = ; var NowSal = document.getElementById("JBGZ").value.Trim();
var ModifedSal = document.getElementById("JiangJ").value.Trim(); // //出错字段
// var fieldText = "";
// //出错提示信息
// var msgText = "";
// //是否有错标识
// var isErrorFlag = false; if (NowSal == "" && ModifedSal == "") {
alert("请在对应的位置,输入原工资和修改后的工资!");
// isErrorFlag = true;
// fieldText += "原工资和修改后的工资|";
// msgText += "请输入原工资和修改后的工资|";
}
else if (NowSal == "") {
alert("请输入原工资!");
}
else if (ModifedSal == "") {
alert("请输入修改后的工资!");
}
else // if (ModifedSal != "" && NowSal!="")
{
for (var row = ; row < tableCount; row++)
{
var rowIndex = table.rows[row - ];
var textinput = rowIndex.getElementsByTagName("input"); for (var i = ; i < textinput.length; i++)
{
if (textinput[i].value == NowSal)// && (textinput.id.indexOf('TotalOne_') <= -1) && (textinput.id.indexOf('TotalTwo_') <= -1) && (textinput.id.indexOf('Total_') <= -1)) // var textinput = table.getElementsByTagName("input");
{
textinput[i].value = ModifedSal;
CountNum++;
}
}
CalculateTotalSalary("", row);
}
if (CountNum == )
{
alert("没有找到与你要求相符的数据 ! \n 请您重新输入进行查找。");
}
}
}
function AllUpdate() { var table = document.getElementById("tblSalaryDetail"); //取到表中的数据
//获取表格行数
var tableCount = table.rows.length;
var CountNum = 0;
var NowSal = document.getElementById("JBGZ").value.Trim(); //显示“原工资”文本框
var ModifedSal = document.getElementById("JiangJ").value.Trim();//显示“修改后工资”文本框
// var textinput = table.getElementsByTagName("input");
if (ModifedSal != "")
{
for (var row = 1; row < tableCount; row++) //遍历表的行
{
var rowIndex = table.rows[row - 1];
var textinput = rowIndex.getElementsByTagName("input"); //用“input”属性取到input对应的每一个值
for (var i = 1; i < textinput.length; i++) //遍历某一行的input文本框
{
if (textinput[i].value == parseInt(NowSal) ) //多注意parseFloat,parseDouble等等的用法
// && (textinput.id.indexOf('TotalOne_') <= -1) && (textinput.id.indexOf('TotalTwo_') <= -1) && (textinput.id.indexOf('Total_') <= -1)) //parseInt显示的把文本框中的内容转化为Int类型的
{
textinput[i].value = ModifedSal; //赋值
CountNum++;
}
}
CalculateTotalSalary("", row);
}
if (CountNum == 0)
{
alert("没有找到与你要求相符的数据 ! \n 请您重新输入进行查找。");
}
}
function AllUpdate() {
table = document.getElementById("tblSalaryDetail"); // var SubTotal = table.getElementsByTagName("Total_"); //获取表格行数
var tableCount = table.rows.length; var CountNum = 0; var NowSal = document.getElementById("JBGZ").value.Trim();
var ModifedSal = document.getElementById("JiangJ").value.Trim(); // var Totalone = table.rows[0].cells[9].innerHTML;
// var Totaltwo = table.rows[0].cells[16].innerHTML;
// var Totalthree = table.rows[0].cells[17].innerHTML; // var Total = "Total";
//&& (table[i].id).substring(0,5) != Total var textinput = table.getElementsByTagName("input"); // var Totalone = textinput[9].value; if (ModifedSal != "") { for (var row = 1; row < tableCount-1; row++) { for (var i = 1; i < textinput.length; i++) { var str = textinput[i].value;
// var one = textinput.id.indexof('TotalOne_');
// var two=("TotalOne_").indexof('TotalOne_'); if (textinput[i].value == parseInt(NowSal)) //&& (textinput.id.indexof('TotalOne_') <= -1) && (textinput.id.indexof('TotalTwo_') <= -1) && (textinput.id.indexof('Total_') <= -1)
{ textinput[i].value = ModifedSal;
CountNum++;
}
}
CalculateTotalSalary("", row);
} if (CountNum == 0) { alert("没有找到与你要求相符的数据 ! \n 请您重新输入进行查找。");
}
if (ModifedSal != "") { for (var row = 1; row < tableCount-1; row++) { for (var i = 1; i < textinput.length; i++) { var str = textinput[i].value;
if (textinput[i].value == parseInt(NowSal)) //&& (textinput.id.indexof('TotalOne_') <= -1) && (textinput.id.indexof('TotalTwo_') <= -1) && (textinput.id.indexof('Total_') <= -1)
{
textinput[i].value = ModifedSal;
CountNum++;
}
}
CalculateTotalSalary("", row);
} if (CountNum == 0) { alert("没有找到与你要求相符的数据 ! \n 请您重新输入进行查找。");
}
}
错误的:
for (var row = 1; row < tableCount; row++)
{
//批量更新工资 row = table.rows[row]; // alert(row); for (var col = 1; col < row.cells.length; col++) { // alert(col);
// alert(row.cells[col].innerHTML); if (row.cells[col].innerHTML == valu) { row.cells[col].innerHTML = v1; CalculateTotalSalary("", row); }
} if (table.rows[row].style.display != "none")
{
document.getElementById(str+"_"+row).value=valu;
CalculateTotalSalary("",row);
}
Data层相关问题 & JS循环取值的更多相关文章- 折腾一天,获取下列多选框的所有选中值,原生js可直接通过obj.val()来获取,可jq不行,要通过循环取值来获取;
折腾一天,获取下列多选框的所有选中值,原生js可直接通过obj.val()来获取,可jq不行,要通过循环取值来获取;
- html与js的取值,赋值
-------------------------------------------------- ------------------------------------------------- ...
- 当页面是动态时 如果后台存储id可以通过查询后台方式获取对象;当后台没有存储时候 只有通过前端标记了 例如标记数量为10 我们根据传递过来的10循环取值
当页面是动态时 如果后台存储id可以通过查询后台方式获取对象;当后台没有存储时候 只有通过前端标记了 例如标记数量为10 我们根据传递过来的10循环取值
- set类型没有单独取值功能 通过循环取值
set类型没有单独取值功能 通过循环取值
- jquery data方法取值与js attr取值的区别
<a data-v="3"></a> jquery data方法的运行机制: 第一次查找dom,使用attributes获取到dom节点值,并将其值存到缓存 ...
- 对<tr><td>标签里的input 循环取值
需求描述:单击table整行,跳转到具体的信息页面 关键就是获取整行的id,传给后台做查询,返回list 解决思路:用带参数函数传过去id,然后在js的函数中用$("#id"). ...
- js页面取值的三种方式
<input id=""<radio <checkbox<div<img对于这些标签内参数取值,一般分为三种类型:一.有关id取值用 #:取id处的v ...
- 单选复选框的js代码取值
单选框 复选框选中后的js代码处理 <script type="text/javascript"> function check(){ document.getElem ...
- ko.js循环绑定值问题(工作遇见)
fewTags()这是一个数组,循环实现以上效果,箭头所指的不属于循环出来的值, 以前循环是绑定在<div class="file-tag-list">中造成编辑不能在 ...
随机推荐- [转载]:Fortran字符串的故事
一. Fortran 字符串与 C 字符串的区别 Fortran的字符串处理能力其实很弱,关于字符串的语法还很落后.它与 C 字符串最大的区别就是:Fortran字符串是固定长度的,没有 \0 结束 ...
- git branch 管理常用命令
查看本地分支 git branch * dev master *代表当前位于dev分支 查看远程分支 git branch --remote origin/dev origin/master 查看远程 ...
- linux 服务器登录显示lastlogin
1.参数修改: /etc/ssh/sshd_config 问价里边的 printlastlog 设置为yes /etc/ssh/sshd_config 问价里边的 printmotd 设置为yes 2 ...
- 无法使用内置管理员账户打开Microsoft Edge
一.以管理员批准模式运行所有管理员 运行"gpedit.msc",打开本地组策略编辑器,然后依次打开"计算机配置→Windows 设置→安全设置→本地策略→安全选项&qu ...
- delphi Inc函数和Dec函数的用法
inc自增函数 .inc(i,n)://i,n:integer;n为自增量 相当于i:=i+n: .inc(i)://i:integer; 相当于i:=i+; dec自减函数 .dec(i,n): ...
- 《深入浅出 Java Concurrency》
http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
- mysql分区查询
SELECT *FROM INFORMATION_SCHEMA.partitions WHERE table_name='表名' and table_schema='数据库名'
- Func的介绍
经常看到 Func<int, bool>...这样的写法,看到这样的就没有心思看下去了.我们学技术还是需要静下心来. 对Func<int,bool>的Func转到定义看它的解 ...
- ExtJs弹出窗口
1.Ext.Msg.alert(String title, String msg, [Function fn], [Object scope]) 显示一个标准的带有一个"确定"按钮 ...
- 很实用的jQuery事件 - toggle() 方法
实例 切换不同的背景色: $("p").toggle( function(){ $("body").css("background-color&quo ...
折腾一天,获取下列多选框的所有选中值,原生js可直接通过obj.val()来获取,可jq不行,要通过循环取值来获取;
-------------------------------------------------- ------------------------------------------------- ...
当页面是动态时 如果后台存储id可以通过查询后台方式获取对象;当后台没有存储时候 只有通过前端标记了 例如标记数量为10 我们根据传递过来的10循环取值
set类型没有单独取值功能 通过循环取值
<a data-v="3"></a> jquery data方法的运行机制: 第一次查找dom,使用attributes获取到dom节点值,并将其值存到缓存 ...
需求描述:单击table整行,跳转到具体的信息页面 关键就是获取整行的id,传给后台做查询,返回list 解决思路:用带参数函数传过去id,然后在js的函数中用$("#id"). ...
<input id=""<radio <checkbox<div<img对于这些标签内参数取值,一般分为三种类型:一.有关id取值用 #:取id处的v ...
单选框 复选框选中后的js代码处理 <script type="text/javascript"> function check(){ document.getElem ...
fewTags()这是一个数组,循环实现以上效果,箭头所指的不属于循环出来的值, 以前循环是绑定在<div class="file-tag-list">中造成编辑不能在 ...
- [转载]:Fortran字符串的故事
一. Fortran 字符串与 C 字符串的区别 Fortran的字符串处理能力其实很弱,关于字符串的语法还很落后.它与 C 字符串最大的区别就是:Fortran字符串是固定长度的,没有 \0 结束 ...
- git branch 管理常用命令
查看本地分支 git branch * dev master *代表当前位于dev分支 查看远程分支 git branch --remote origin/dev origin/master 查看远程 ...
- linux 服务器登录显示lastlogin
1.参数修改: /etc/ssh/sshd_config 问价里边的 printlastlog 设置为yes /etc/ssh/sshd_config 问价里边的 printmotd 设置为yes 2 ...
- 无法使用内置管理员账户打开Microsoft Edge
一.以管理员批准模式运行所有管理员 运行"gpedit.msc",打开本地组策略编辑器,然后依次打开"计算机配置→Windows 设置→安全设置→本地策略→安全选项&qu ...
- delphi Inc函数和Dec函数的用法
inc自增函数 .inc(i,n)://i,n:integer;n为自增量 相当于i:=i+n: .inc(i)://i:integer; 相当于i:=i+; dec自减函数 .dec(i,n): ...
- 《深入浅出 Java Concurrency》
http://www.blogjava.net/xylz/archive/2010/07/08/325587.html
- mysql分区查询
SELECT *FROM INFORMATION_SCHEMA.partitions WHERE table_name='表名' and table_schema='数据库名'
- Func的介绍
经常看到 Func<int, bool>...这样的写法,看到这样的就没有心思看下去了.我们学技术还是需要静下心来. 对Func<int,bool>的Func转到定义看它的解 ...
- ExtJs弹出窗口
1.Ext.Msg.alert(String title, String msg, [Function fn], [Object scope]) 显示一个标准的带有一个"确定"按钮 ...
- 很实用的jQuery事件 - toggle() 方法
实例 切换不同的背景色: $("p").toggle( function(){ $("body").css("background-color&quo ...






