【发布时间】:2015-09-17 03:44:46
【问题描述】:
我正在使用以下代码:
string cmd = "INSERT INTO " + Tables.Lux() + " VALUES(NULL, @Position, @Mode, @Timer)";
try
{
using (var MyConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["DataFormConnection"].ConnectionString))
{
using (MySqlCommand command = new MySqlCommand(cmd, MyConnection))
{
MyConnection.Open();
command.Parameters.Add(new MySqlParameter("Position", Element.Position));
command.Parameters.Add(new MySqlParameter("Mode", Element.Mode));
command.Parameters.Add(new MySqlParameter("Timer", Element.Timer));
command.ExecuteNonQuery();
}
}
}
我正在使用上面的代码从包含 100 个项目的 Element 列表中插入数据。我只想在一个查询中添加 100 个值,并且我知道 SQL 语句如下所示:
INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);
但我不知道如何使用 MySqlCommand.Parameters 方法应用该结构。
我的目标是传递这个函数 List<Element> 而不仅仅是 Element 并创建一个 INSERT 语句,其中列表中的所有项目仅在一个查询中执行。请问有什么帮助吗?
谢谢。
【问题讨论】:
-
这些值是否来自另一个 SQL 表?
-
您可以创建一个存储过程调用一次,然后在这里执行您的插入语句,如果您是从另一个表插入,您可以使用该表生成将要插入的数据。跨度>
-
您的问题的答案在您的帖子/代码中。您只需要添加参数而不是值。稍后您可以在调用 ExecuteNonQuery() 方法之前替换参数值。
-
@DavidBeaumont:这些值存储在一个列表中,它们是我想要保存的简单日志。
-
@AVD:这正是我想做的,但我在这个领域没有经验,我找不到如何去做。我发现的所有关于多个查询的信息都是从 SQL 语句的角度来看的,而不是从程序员的角度来看的应用程序。
标签: c# mysql sql sqlparameter sql-parametrized-query