List listwxyh = new List(); 的技术难题!

乱舞清风 2015-04-28 10:44:00
需要是:listwxyh 是存放的需要复制的人的信息,我的要求是当业务完成后删掉之前这里面存储的这条信息。见下图


原始数据

要求就是第一个业务已经完成了 这里面又会把他删除 要求是怎么才能不删除 过滤掉!


string Strsqlwxyh = "select uid,wxname,token from tp_wxuser where wxname like '%事业中心%'";
DataSet dswxyh = DbHelperMySQL.Query(Strsqlwxyh);
List<string> listwxyh = new List<string>();
if (dswxyh.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dswxyh.Tables[0].Rows.Count; i++)
{
string Token = dswxyh.Tables[0].Rows[i][2].ToString();//循环Token
listwxyh.Add("delete from tp_img where token='" + Token + "'");
///循环插入
DbHelperMySQL.ExecuteSqlTran(listwxyh);


string Uid = dswxyh.Tables[0].Rows[i][0].ToString();
string Uname = dswxyh.Tables[0].Rows[i][1].ToString();
string Strsqltw = "select uid,uname,keyword,type,text,classid,classname,pic,showpic,info,url,createtime,uptatetime,click,token,title,usort from tp_img where token ='" + Source + "'";
DataSet dstw = DbHelperMySQL.Query(Strsqltw);
List<string> listtw = new List<string>();
if (dstw.Tables[0].Rows.Count > 0)
{
for (int j = 0; j < dstw.Tables[0].Rows.Count; j++)
{
listtw.Add("insert into tp_img (uid,uname,keyword,type,text,classid,classname,pic,showpic,info,url,createtime,uptatetime,click,token,title,usort) values ('" + Uid + "','" + Uname + "','" + dstw.Tables[0].Rows[i][2] + "','" + dstw.Tables[0].Rows[i][3] + "','" + dstw.Tables[0].Rows[i][4] + "','" + dstw.Tables[0].Rows[i][5] + "','" + dstw.Tables[0].Rows[i][6] + "','" + dstw.Tables[0].Rows[i][7] + "','" + dstw.Tables[0].Rows[i][8] + "','" + dstw.Tables[0].Rows[i][9] + "','" + dstw.Tables[0].Rows[i][10] + "','" + dstw.Tables[0].Rows[i][11] + "','" + dstw.Tables[0].Rows[i][12] + "','" + dstw.Tables[0].Rows[i][13] + "','" + Token + "','" + dstw.Tables[0].Rows[i][15] + "','" + dstw.Tables[0].Rows[i][16] + "')");
}
///循环插入
DbHelperMySQL.ExecuteSqlTran(listtw);
}

}

}
...全文
852 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
乱舞清风 2015-05-12
  • 打赏
  • 举报
回复
已经搞定,是用事务执行批量!感谢各位的思路
  • 打赏
  • 举报
回复
引用 13 楼 wyumening 的回复:
可以使用queue类来完成这个操作,Queue在ArrayList的基础上加入了以下限制: 元素采用先入先出机制(FIFO,First In First Out),即先进入队列的元素必须先离 开队列。 这样比较符合你的需求
我觉得这个 说法比较合理
地海一刀 2015-05-06
  • 打赏
  • 举报
回复
建议用List<KeyValuePair<string,bool>>来记录每一个业务主键执行的状态,不需要删除的。
乱舞清风 2015-05-03
  • 打赏
  • 举报
回复
引用 11 楼 ligyu110 的回复:
还是麻烦楼主详细的说一下自己的需求吧,描述清楚了大家好帮你想办法啊
1 2 3 4 5 因为上面这5条数据是用来做条件的,比如我第一条业务成功后 就需要删除第一条数据,用第二个数据来做为条件。成功后删除第二个 !以此类推指导走到5的时候成功后就把5页删除 直到业务结束!
乱舞清风 2015-05-03
  • 打赏
  • 举报
回复
引用 15 楼 sp1234 的回复:
等foreach循环结束 --> 等的最外层的那个for循环结束
举例 listwxyh 原有5条数据 1 2 3 4 5 因为上面这5条数据是用来做条件的,比如我第一条业务成功后 就需要删除第一条数据,用第二个数据来做为条件。成功后删除第二个 !以此类推指导走到5的时候成功后就把5页删除 直到业务结束!
乱舞清风 2015-05-03
  • 打赏
  • 举报
回复
举例 listwxyh 原有5条数据 1 2 3 4 5 因为上面这5条数据是用来做条件的,比如我第一条业务成功后 就需要删除第一条数据,用第二个数据来做为条件。成功后删除第二个 !以此类推指导走到5的时候成功后就把5页删除 直到业务结束!
  • 打赏
  • 举报
回复
等foreach循环结束 --> 等的最外层的那个for循环结束
  • 打赏
  • 举报
回复
引用 10 楼 xuanbg 的回复:
[quote=引用 8 楼 Z65443344 的回复:] listtw.RemoveAt(0);
不妥!如果第一个失败了,后面都成功了,留下来的不是第一个而是最后一个。另外,前面的移除了会影响迭代器执行的次数。[/quote] 待删除的数据的 token 应该单独记录在一个集合里。等foreach循环结束,再来便利这个“待删除的数据的token集合”。
wyumening 2015-05-03
  • 打赏
  • 举报
回复
可以使用queue类来完成这个操作,Queue在ArrayList的基础上加入了以下限制: 元素采用先入先出机制(FIFO,First In First Out),即先进入队列的元素必须先离 开队列。 这样比较符合你的需求
  • 打赏
  • 举报
回复
有点明白你的意思,就是完成后有一条信息是和数组中对应的,如果这样的话对数组进行查询是否包含项,获得包含项序号就可以删除了,已有查询函数可以直接调用,难道不会?

            List<string> aaa = new List<string>();
            aaa.AddRange (new string []{"这","那","这个","那个"});
            int aa = aaa.IndexOf("这个");
            aaa.Remove("那");
            aaa.RemoveAt(aa);
乱舞清风 2015-04-30
  • 打赏
  • 举报
回复
引用 4 楼 lovelj2012 的回复:
神马不删除、过滤掉,么意思啊?
 listwxyh 这个存放了10条数据 我想到最后一步 执行成功的时候删除 listwxyh 第一行记录 以此类推 知道走完循环!
乱舞清风 2015-04-30
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
既然是要移除的,为啥还要用List呢,改用Queue吧
 listwxyh 这个存放了10条数据 我想到最后一步 执行成功的时候删除 listwxyh 第一行记录 以此类推 知道走完循环!
乱舞清风 2015-04-30
  • 打赏
  • 举报
回复
引用 3 楼 xianfajushi 的回复:
删除前另外提取到一个变量的意思?
 listwxyh 这个存放了10条数据 我想到最后一步 执行成功的时候删除 listwxyh 第一行记录 以此类推 知道走完循环!
江南小鱼 2015-04-30
  • 打赏
  • 举报
回复
神马不删除、过滤掉,么意思啊?
老李家的小二 2015-04-30
  • 打赏
  • 举报
回复
还是麻烦楼主详细的说一下自己的需求吧,描述清楚了大家好帮你想办法啊
software_artisan 2015-04-30
  • 打赏
  • 举报
回复
引用 8 楼 Z65443344 的回复:
listtw.RemoveAt(0);
不妥!如果第一个失败了,后面都成功了,留下来的不是第一个而是最后一个。另外,前面的移除了会影响迭代器执行的次数。
江南小鱼 2015-04-30
  • 打赏
  • 举报
回复
引用 7 楼 xiaoqiangzhang23 的回复:
引用 4 楼 lovelj2012 的回复:
神马不删除、过滤掉,么意思啊?
 listwxyh 这个存放了10条数据 我想到最后一步 执行成功的时候删除 listwxyh 第一行记录 以此类推 知道走完循环!

if(执行成功)
 listwxyh.RemoveAt(0);
於黾 2015-04-30
  • 打赏
  • 举报
回复
listtw.RemoveAt(0);
  • 打赏
  • 举报
回复
删除前另外提取到一个变量的意思?
threenewbee 2015-04-28
  • 打赏
  • 举报
回复
没看到你删除的代码,删除用remove或者removeat
加载更多回复(1)

110,561

社区成员

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

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

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