繁体   English   中英

在 C# 准备好的语句中执行多个 SQL 查询

[英]Execute Multiple SQL queries in c# prepared statement

我想知道是否可以在一个准备好的语句中执行多个 SQL 查询。 这是我要执行的第一个查询:

MySqlCommand cmd = new MySqlCommand(
                    "INSERT INTO Table VALUES (@Date,@Manager,@Joiner,@Number,@Type,@Join,@Status)",
                    conn);
                    cmd.Prepare();
                    cmd.Parameters.AddWithValue("@Date", Date);
                    cmd.Parameters.AddWithValue("@Manager",Manager);
                    cmd.Parameters.AddWithValue("@Joiner", Joiner);
                    cmd.Parameters.AddWithValue("@Number", Number);
                    cmd.Parameters.AddWithValue("@Type", Type);
                    cmd.Parameters.AddWithValue("@Join", Join);
                    cmd.Parameters.AddWithValue("@Status", Status);
                    cmd.ExecuteReader();

在我需要执行DELETE FROM Table where Date='@Date'查询之后。 最有效的方法是什么?

MySql 支持批处理命令。 这意味着在第一个命令文本之后,您可以在通过 ExecuteNonQuery 提交的单个字符串中添加分号和第二个命令(当您不需要阅读任何内容时不要使用 ExecuteReader)

 "INSERT INTO Table VALUES (@Date,@Manager,@Joiner,@Number,@Type,@Join,@Status);
 DELETE FROM Table where Date=@Date"

另请注意,我已删除了 @Date 参数周围的单引号。 离开它们会将参数占位符转换为文字字符串。 这几乎找不到要删除的任何行。 再想一想,我对第二个命令感到困惑,因为它会删除插入到第一个命令中的相同记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM