对两种看的人进行单独操作,进行插入数据时,提示超时:
VisitModel d = new VisitModel();
d.InjectFrom(rpm.Entity); //将提交的表数据填入模型
string uuid = System.Guid.NewGuid().ToString();
d.remark = uuid;
StringBuilder sb6 = new StringBuilder();
string[] pers = _leader.Split(','); //传过来的字符串处理sb6.Append("delete Documentreview where flag='抄送' and remark='" + d.remark + "';");
for (int i = 0; i < pers.Length; i++)
{
if (pers[i] != "")
{
sb6.Append("insert into Documentreview(fromdate,sysuserid,flag,remark) values('" + d.docdate + "'," + pers[i] + ",'抄送','" + d.remark + "');");
}
}
DBHelper.Excsql(sb6.ToString(),null); //数据存储帮助类
StringBuilder sb7 = new StringBuilder();string[] apv = _approver.Split(','); //传过来的字符串处理
using (DataTable dtr = DBHelper.Search("select sysuserid from Documentreview where remark='" + d.remark + "' and flag='审批'", null))
{
;
if (dtr.Rows.Count > 0)
{
for (int i = 0; i < apv.Length; i++)
{
for (var j = 0; j < dtr.Rows.Count; j++)
{
if (apv[i] == dtr.Rows[j]["sysuserid"].ToString())
{
break;
}
k++;
}
if (k == dtr.Rows.Count)
{
if (apv[i] != "")
{
sb7.Append("insert into Documentreview(fromdate,sysuserid,flag,remark) values('" + d.docdate + "'," + apv[i] + ",'审批','" + d.remark + "');");
}
}
k = 0;
}
for (int i = 0; i < dtr.Rows.Count; i++)
{
for (var j = 0; j < apv.Length; j++)
{
if (apv[j] == dtr.Rows[i]["sysuserid"].ToString())
{
break;
}
k++;
}
if (k == apv.Length)
{
sb7.Append("delete Documentreview where sysuserid=" + dtr.Rows[i]["sysuserid"] + " and remark='" + d.remark + "';");
}
k = 0;
}
}
else
{
for (int i = 0; i < apv.Length; i++)
{
if (apv[i] != "")
{
sb7.Append("insert into Documentreview(fromdate,sysuserid,flag,remark) values('" + d.docdate + "'," + apv[i] + ",'审批','" + d.remark + "');");
}
}
}
}
DBHelper.Excsql(sb7.ToString(),null);
一直在这一步操作时卡顿,然后报错说超时,其实只需要将所有sql语句全都放到一个StringBuilder里就可以了。
分段的插入数据与下面的查询冲突了,导致的超时。