gpt4 book ai didi

c# - 如何将数据列表从 C# 传递到 MySQL 存储过程

转载 作者:行者123 更新时间:2023-11-30 23:16:28 24 4
gpt4 key购买 nike

我正在编写一个从 C# MVC 项目调用的 MySQL 存储过程,它将接收一些参数来进行酒店预订。

我遇到的问题是,对于 MySQL 存储过程,传递对象列表的最佳方法是什么。

我的一个想法是在调用存储过程之前,我可以在一些临时表中预先保存所需的数据,并使用一个可以在存储过程中调用的唯一键来进行酒店预订,它可以获取所有来自临时表的数据。

您可能会问,为什么我不调用多个存储过程,但出于完整性目的,我将使用 MySQL 事务。

最佳答案

You might ask, why don't I just call multiple stored procedures, but for integrity purposes, I will be using MySQL Transactions.

这是一个有趣的原因。考虑以下代码:

using (MySqlConnection c = new MySqlConnection("cstring"))
{
c.Open();
var t = c.BeginTransaction();

try
{
foreach (var o in list)
{
using (MySqlCommand cmd = new MySqlCommand("EXECUTE sp @field1, @field2", c, t))
{
cmd.Parameters.AddWithValue("@field1", o.field1);
cmd.Parameters.AddWithValue("@field2", o.field2);

cmd.ExecuteNonQuery();
}
}

t.Commit();
}
catch (Exception ex)
{
t.Rollback();
// do something with ex
}
}

这是一个多次访问数据库的连续事务。虽然我不完全理解您的应用程序、负载或要求,但在我看来,如果您只是做这样的事情,它会很好地满足您的需求。只有当您处理数百万的事务时,往返次数才开始变得重要。

关于c# - 如何将数据列表从 C# 传递到 MySQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17489447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com