当前位置: 首页 > 知识库问答 >
问题:

在C#prepared语句中执行多个SQL查询

陆文斌
2023-03-14

我想知道是否可以在一个准备好的语句中执行多个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();

共有1个答案

崔涵亮
2023-03-14

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

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

还请注意,我已经删除了@date参数周围的单引号。留下它们将在文字字符串中转换参数占位符。这样几乎找不到要删除的行。转念一想,我对这第二个命令感到困惑,因为它会删除第一个命令中插入的相同记录。

 类似资料:
  • 问题内容: 大家好,我想执行我的SQL语句,但是我在synatx上遇到麻烦,有人可以帮助我了解我做错了什么吗? 谢谢,阿什。 问题答案: 您需要解决的最重要的事情是使用查询参数,而不是动态地构建字符串。这将提高性能,维护和安全性。 此外,您想使用较新的强类型ADO.Net对象。确保为添加使用指令。 注意此代码中的语句。完成连接后,他们将 确保 您的连接已关闭。这很重要,因为数据库连接是有限且不受管

  • 问题内容: 我想在 Java中 执行查询。 我创建一个连接。然后,我想执行一条语句,完成后关闭连接,但是我想通过连接执行一些插入语句,并在循环完成后关闭连接。 我能做些什么 ? 我的示例代码是: 当执行select语句()时,循环必须为两次,但是当()执行并完成时,则关闭连接并从类中返回。 问题答案: 以下示例使用&命令同时执行多个SQL命令。 结果: 以上代码示例将产生以下结果。结果可能会有所不

  • 我试图在mysql中创建一个存储过程,它在每个请求中创建一个新表,从另一个表中复制内容,提取所需的数据,最后删除该表。存储过程相当大,所以我不可能在每个查询之后都执行,因此我试图以分号分隔的格式一起执行查询。但在最终执行时,我得到错误代码:1064。我正在尝试的方法是否可行,或者是否有更好的方法。

  • 问题内容: 如何将这些多个查询合并为一个(可以吗?) 顺便问一下,如果在完成所有查询后再执行mysql_close($ db),那会更好吗? 问题答案: 传递到作为第五个参数。 例: 当您使用mysql_fetch_ *或mysql_num_rows或mysql_affected_rows时,仅第一条语句有效。 例如,以下代码,第一个语句为INSERT,则无法执行mysql_num_rows和my

  • 问题内容: 我想知道是否可以使用JDBC执行类似的操作,因为即使在MySQL查询浏览器中,它当前也提供了异常。 虽然我确实意识到可以拆分SQL查询字符串并执行两次语句,但是我想知道是否有一次性的方法。 问题答案: 我想知道是否可以使用JDBC执行类似的操作。 对的,这是可能的。据我所知,有两种方法。他们是 通过设置数据库连接属性以允许多个查询,默认情况下用分号分隔。 通过调用返回隐式游标的存储过程