如何为计数未知的对象列表创建MySql参数?

问题描述 投票:1回答:2

我想为列表中的每个对象插入一行。此列表的数量未知,但总是10个或更少。

"insert into achievement(Rank,Event,UserId) values(@rank,@event,@userid);"知道这一点,values最多可以有10个参数集合。

所以基本上我的问题是:我该如何简短地执行以下代码并且对象数可变(不总是10个?)]

"insert into achievement(Rank,Event,UserId) values(@rank1,@event1,@userid) (@rank2,@event2,@userid) (@rank3,@event3,@userid) (@rank4,@event4,@userid) (@rank5,@event5,@userid) (@rank6,@event6,@userid) (@rank7,@event7,@userid) (@rank8,@event8,@userid) (@rank9,@event9,@userid) (@rank10,@event10,@userid)" 

List<Achievement> achievementDTOs;

command.Parameters.AddWithValue("rank1", dto1.Rank);
command.Parameters.AddWithValue("event1", dto1.Event);
command.Parameters.AddWithValue("rank2", dto2.Rank);
command.Parameters.AddWithValue("event2", dto2.Event);
command.Parameters.AddWithValue("rank3", dto3.Rank);
command.Parameters.AddWithValue("event3", dto3.Event);
command.Parameters.AddWithValue("rank4", dto4.Rank);
command.Parameters.AddWithValue("event4", dto4.Event);
command.Parameters.AddWithValue("rank5", dto5.Rank);
command.Parameters.AddWithValue("event5", dto5.Event);
command.Parameters.AddWithValue("rank6", dto6.Rank);
command.Parameters.AddWithValue("event6", dto6.Event);
command.Parameters.AddWithValue("rank7", dto7.Rank);
command.Parameters.AddWithValue("event7", dto7.Event);
command.Parameters.AddWithValue("rank8", dto8.Rank);
command.Parameters.AddWithValue("event8", dto8.Event);
command.Parameters.AddWithValue("rank9", dto9.Rank);
command.Parameters.AddWithValue("event9", dto9.Event);
command.Parameters.AddWithValue("rank10", dto10.Rank);
command.Parameters.AddWithValue("event10", dto10.Event);

我想为列表中的每个对象插入一行。此列表的数量未知,但始终为10个或更少。 “插入成就(Rank,Event,UserId)值(@ rank,@ event,@ userid);”知道...

c# ado.net
2个回答
2
投票

您可以遍历成就列表并添加新的参数集,并在每次循环时为查询添加一些新文本。像这样的东西:


-1
投票

您也可以尝试如下创建动态参数

© www.soinside.com 2019 - 2024. All rights reserved.