如何使用 C#.NET Winform 应用程序从 mysql 数据库返回多个结果集

发布于 2024-11-14 12:59:52 字数 284 浏览 3 评论 0原文

我有一个 Winform C#.NET 应用程序。

当我使用 SQL Server 时,为了一起返回两个结果集,我使用换行符 '\n' 传递了两个 SELECT 查询,但是如何在 mysql 中执行此操作?

在 SQL SERVER 中我做了这个并且它完成了:

"SELECT ProductName FROM Products" +"\n" +"SELECT ProductID FROM Products"

但是如何在 MySQL 中执行此操作???

I have a Winform C#.NET application.

When i used SQL Server , then to return two result sets together, I passed two SELECT queries using a linebreak '\n' , but how to do it in mysql?

IN SQL SERVER i did this and it completed :

"SELECT ProductName FROM Products" +"\n" +"SELECT ProductID FROM Products"

But how to do this in MySQL????

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诠释孤独 2024-11-21 12:59:52

在 MySQL 中,由于其局限性,这是不可能的。很久以前,他们就认为在一批中允许多个查询是不安全的。这可能是因为 MySQL 经常与 php 结合使用,并且通常通过添加分号并注入另一个查询来进行简单的 SQL 注入攻击。

PS>我不知道它是否适用于新版本的 MySQL,因为自从我使用它(大约 3 年前)以来,有些东西可能已经发生了变化。

PS>我建议使用存储过程来完成此任务。

这可能看起来像这样:

CREATE PROCEDURE sample_procedure()
READS SQL DATA
BEGIN
  SELECT xxx FROM yyy;
  SELECT zzz FROM vvv;
END;

In MySQL this is impossible due to its limitations. Long time ago they've decided that it's unsafe to allow multiple queries in one batch. This was probably because MySQL was often used in conjunction with php and it was common to do simple SQL injection attacks simply by adding semicolon and injecting another query.

PS> I don't know if it applies to new versions of MySQL since something might have changed since I was using it (about 3 years ago).

PS> I would suggest using stored procedures to accomplish this task.

This would probably look sth like that:

CREATE PROCEDURE sample_procedure()
READS SQL DATA
BEGIN
  SELECT xxx FROM yyy;
  SELECT zzz FROM vvv;
END;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文