gpt4 book ai didi

c# - 从 C# 中的数据库层调用存储过程

转载 作者:搜寻专家 更新时间:2023-10-30 21:38:33 25 4
gpt4 key购买 nike

假设你有一些简单的存储过程,例如

AddXYZ(param1, param 2...etc)

获取所有XYZ()

获取XYZ(id)

从“数据库层”调用这些存储过程的“最佳实践”方式是什么

我不想使用 linq。只是关于如何执行此操作的简单 C# 静态方法。

我正在使用 sqlserver。

最佳答案

我不认为你真的是指 static 方法,因为这将是一种非常非 OO 的方式来处理这样的事情,而且 C# 中没有内置这样的工具。但是,有标准的 ADO.NET 类可以让您在没有任何 ORM 包装或使用 DataSet 等的情况下执行此操作。-

如果您真的想手动调用存储过程并在没有任何 ORM 或标准化存储机制为您做的情况下取回一组结果,这将是您最好的选择:

using(System.Data.IDbConnection conn = /*create your connection here*/)
{
using(System.Data.IDbCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "AddXYZ";

// add your parameters here using cmd.CreateParameter() and cmd.Parameters.Add()

using(System.Data.IDbDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
// read your results row-by-row
}
}
}
}

您没有指定您通过哪个数据库引擎进行连接,所以我使用了通用接口(interface)将您从中抽象出来。如果您愿意(尽管我通常不赞成执行此操作的代码),您可以使用特定于平台的类,使事情变得更简单,至少在添加参数方面(代码不像基于接口(interface)的方法那样冗长)

关于c# - 从 C# 中的数据库层调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/996904/

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