关于asp.net插数据的问题,下面语句有什么问题么,插不进数据库(PersonIDlist为'123123','123123'这种)

usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingMySoft.Plugin.HR.Ti... using System;
using System.Collections.Generic;
using System.Data;
using MySoft.Plugin.HR.TimerCheck;

class DataService : DataServiceBase
{
public object Execute(Dictionary<string, object> args)
{
var personId = args.GetValueIf("PersonID", "");
var holidayType = args.GetValueIf("HolidayType", "");
var askReason = args.GetValueIf("AskReason", "");
var startDate = args.GetValueIf("StartDate", "");
var endDate = args.GetValueIf("EndDate", "");
var sDate = Convert.ToDateTime(startDate);
var eDate = Convert.ToDateTime(endDate);
var PersonIDList=args.GetValueIf("PersonIDList","");

var process = new HolidayProcess();
var sql = @"
INSERT INTO KQ_Data_Q15 (OrderID, PersonID, PClassID, B0001, B0002, B0003, A0101, Q1501, Q1502, StartDate, EndDate, Q1503, DispOrder)
SELECT
replace(newid(),'-',''),PersonID,
PClassID,
B0001,
dbo.My_Org_DeptId_Merge(B0002,B00022,B00023),
B0003,
A0101,
@HolidayType,
getdate(),
@StartDate,
@EndDate,
@AskReason,
isnull((SELECT max(DispOrder) FROM KQ_Data_Q15),0)+row_number()OVER(ORDER BY PersonID)
FROM A01
WHERE PersonID in (@PersonIDList)";
var cmd = DB.GetSqlCommand(sql);
DB.AddInParameter(cmd, "HolidayType", holidayType, DbType.String);
DB.AddInParameter(cmd, "PersonID", personId, DbType.String);
DB.AddInParameter(cmd, "AskReason", askReason, DbType.String);
DB.AddInParameter(cmd, "StartDate", sDate, DbType.DateTime2);
DB.AddInParameter(cmd, "EndDate", eDate, DbType.DateTime2);
DB.AddInParameter(cmd,"PersonIDList",PersonIDList,DbType.String);
return DB.ExecuteNonQuery(cmd) > 0 /*&& process.ExecuteAskHolidayCalc(personId, holidayType, sDate, eDate)*/;
}
}
展开
 我来答
阳光的雷咩咩
2016-06-08 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7783万
展开全部
你这封装得有点厉害,都看不出是什么数据库。由于不能一眼看出问题,只说调试思路。首先打开sql管理器,写出你完整的测试sql,保证能执行成功。然后改为代码里相应带变量的语句。调试时一般需要在控制台输出sql或者断点复制sql出来重新在sql管理器里执行看结果。
追问
因为不是在开发环境中写的代码,所以没办法调试,数据库用的是sqlserver2008,其中的SQL语句将变量替换掉后是可以在数据库中执行成功的,但是在这段语句中DB.ExecuteNonQuery(cmd) > 0返回的是false
追答
不是在开发环境写代码,那你在用户环境写代码?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式