主表子表联合塞数据

xhk008 2017-02-23 10:44:12
下面这段主要是实现主表和子表同时塞数据,本地执行没有问题,为什么部署到服务器上就出错,
显示什么日期格式不对:
ORA-01843: not a valid month
at DAL.LASER_SWEEPING_ELOGSHEET.AddNew(LASER_SWEEPING_ELOGSHEET info, ArrayList objlist) at BLL.LASER_SWEEPING_ELOGSHEET.AddNew(LASER_SWEEPING_ELOGSHEET model, ArrayList objarray) at Web.LOT_START.btnNEXT_Click(Object sender, EventArgs e) at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

public bool AddNew(Model.LASER_SWEEPING_ELOGSHEET info, ArrayList objlist)
{
try
{
string subsql = "";
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into LASER_SWEEPING_ELOGSHEET(");
strSql.Append("ID,OPER,OPER_DESC,DEPT,LOT_ID,MACHINE_ID,ACTION_TYPE,CURRENT_STATUS,START_TIME,START_OPER_ID,START_SHIFT,END_TIME,END_OPER_ID,END_SHIFT,PKG,PKG_SIZE,LEADER,DEVICE_ID,QTY_IN,SHIFT_SAW,MICRO_GAP_CRACK,PKG_SCRATCH,PCB_SCRATCH,CHIP,LASER_BURN,GOLDEN_FINGER_SCRATCH,CUST_ID,RESULT,LASER_POWER,DELETED,DELETED_ID,DELETED_REASON,DELETED_DATE,FILTER_PRESSURE)");
strSql.Append(" values (");
strSql.Append("'" + info.ID + "','" + info.OPER + "','" + info.OPER_DESC + "','" + info.DEPT + "','" + info.LOT_ID + "','" + info.MACHINE_ID + "','" + info.ACTION_TYPE + "','" + info.CURRENT_STATUS + "',to_date('" + info.START_TIME + "','YYYY/MM/DD HH24:MI:SS'),'" + info.START_OPER_ID + "','" + info.START_SHIFT + "',to_date('" + info.END_TIME + "','YYYY/MM/DD HH24:MI:SS'),'" + info.END_OPER_ID + "','" + info.END_SHIFT + "','" + info.PKG + "','" + info.PKG_SIZE + "','" + info.LEADER + "','" + info.DEVICE_ID + "','" + info.QTY_IN + "','" + info.SHIFT_SAW + "','" + info.MICRO_GAP_CRACK + "','" + info.PKG_SCRATCH + "','" + info.PCB_SCRATCH + "','" + info.CHIP + "','" + info.LASER_BURN + "','" + info.GOLDEN_FINGER_SCRATCH + "','" + info.CUST_ID + "','" + info.RESULT + "','" + info.LASER_POWER + "','" + info.DELETED + "','" + info.DELETED_ID + "','" + info.DELETED_REASON + "','" + info.DELETED_DATE + "','" + info.FILTER_PRESSURE + "')");
object[] pars = new object[] { info.ID, info.OPER, info.OPER_DESC, info.DEPT, info.LOT_ID, info.MACHINE_ID, info.ACTION_TYPE, info.CURRENT_STATUS, info.START_TIME, info.START_OPER_ID, info.START_SHIFT, info.END_TIME, info.END_OPER_ID, info.END_SHIFT, info.PKG, info.PKG_SIZE, info.LEADER, info.DEVICE_ID, info.QTY_IN, info.SHIFT_SAW, info.MICRO_GAP_CRACK, info.PKG_SCRATCH, info.PCB_SCRATCH, info.CHIP, info.LASER_BURN, info.GOLDEN_FINGER_SCRATCH, info.CUST_ID, info.RESULT, info.LASER_POWER, info.DELETED, info.DELETED_ID, info.DELETED_REASON, info.DELETED_DATE, info.FILTER_PRESSURE };
string[] sqllist = new string[objlist.Count + 1];
sqllist[0] = strSql.ToString();
Model.LASER_SWEEPING_ESPECITEM a = new Model.LASER_SWEEPING_ESPECITEM();
for (int i = 0; i <= objlist.Count - 1; i++)
{
a = (Model.LASER_SWEEPING_ESPECITEM)objlist[i];
subsql = GenerateSubTblSql(a);
sqllist[i + 1] = subsql;
}
bool isresult = db.ExecuteMulti(sqllist);
if (isresult == true)
return true;
else
return false;
}
catch (Exception ex)
{
return false;
}
}

/// <summary>
/// 拼接子表SQL语句
/// </summary>
public string GenerateSubTblSql(Model.LASER_SWEEPING_ESPECITEM info1)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into LASER_SWEEPING_ESPECITEM(");
strSql.Append("LOT_ID,MACHINE_ID,ACTION_TYPE,START_TIME,ESPEC_NAME,ESPEC_VALUE)");
strSql.Append(" values (");
strSql.Append("'" + info1.LOT_ID + "','" + info1.MACHINE_ID + "','" + info1.ACTION_TYPE + "',to_date('" + info1.START_TIME + "','YYYY/MM/DD HH24:MI:SS'),'" + info1.ESPEC_NAME + "','" + info1.ESPEC_VALUE + "')");
return strSql.ToString();
}


...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhk008 2017-02-23
  • 打赏
  • 举报
回复
引用 2 楼 xdashewan 的回复:
还有to_date函数不用了,你可以把你拼好的sql看一下就知道时间格式是错误的
我在自己电脑上运行的时候测试了,下面这句塞主表的sql可以执行,数据也进去了。
insert into LASER_SWEEPING_ELOGSHEET(ID,OPER,OPER_DESC,DEPT,LOT_ID,MACHINE_ID,ACTION_TYPE,CURRENT_STATUS,START_TIME,START_OPER_ID,START_SHIFT,END_TIME,END_OPER_ID,END_SHIFT,PKG,PKG_SIZE,LEADER,DEVICE_ID,QTY_IN,SHIFT_SAW,MICRO_GAP_CRACK,PKG_SCRATCH,PCB_SCRATCH,CHIP,LASER_BURN,GOLDEN_FINGER_SCRATCH,CUST_ID,RESULT,LASER_POWER,DELETED,DELETED_ID,DELETED_REASON,DELETED_DATE,FILTER_PRESSURE) values ('','1081','LSW','LAMINATE','G12345TEST0000','FSM001','POSITROL_LOG','LOT_END',to_date('2017-02-23 11:20:33','YYYY/MM/DD HH24:MI:SS'),'06163189','C',to_date('','YYYY/MM/DD HH24:MI:SS'),'','','UNSP','7x7','0048','B1MI*440XXXB','918','','','','','','','','SGS','','','0','','',to_date('','YYYY/MM/DD HH24:MI:SS'),'')
xdashewan 2017-02-23
  • 打赏
  • 举报
回复
还有to_date函数不用了,你可以把你拼好的sql看一下就知道时间格式是错误的
xdashewan 2017-02-23
  • 打赏
  • 举报
回复
info.START_TIME直接tostring(“yyyy/MM/dd hh:mm:ss”)
xdashewan 2017-02-23
  • 打赏
  • 举报
回复
引用 3 楼 xhk008 的回复:
我在自己电脑上运行的时候测试了,下面这句塞主表的sql可以执行,数据也进去了。
你可以在服务器上输出个日志,看下拼接的sql是什么样子的

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧