gpt4 book ai didi

C# "painless"如何调用带参数的存储过程?

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:09 27 4
gpt4 key购买 nike

我正在寻找从 C# 调用存储过程的绝对最简单的方法,无需显式参数对象,如下所示:

using (DataTable dt=conn.ExecuteQuery("MySP", param1, "param2", p3, p4)) {

在第一次调用时,库会查询 SP 签名的数据库架构,然后将其缓存以供后续调用使用。

A) 有什么方法可以通过企业图书馆数据访问 block 做到这一点吗?

B) 由于模式和代码元数据之间的同步问题,我认为 ORM 没有吸引力。

我确实找到了这个 generator-less wrapper但我希望有一个主要的图书馆或最佳实践,但我还没有发现。

最佳答案

我确实有一个 SqlDataReader 的例子,其中函数调用是

ExecuteNonQuery("dbo.[Sp_Skp_UpdateFuncties]", parameters);

这是一个包含数据库连接字符串的 DataBaseManager 类

public classDataBaseManager
{
...
public int ExecuteStoredProcedure(string storedprocedureNaam, IEnumerable<KeyValuePair<string, object>> parameters)
{
var sqlCommand = new SqlCommand
{
Connection = DatabaseConnectie.SqlConnection,
CommandType = CommandType.StoredProcedure,
CommandText = storedprocedureNaam,
};

foreach (KeyValuePair<string, object> keyValuePair in parameters)
{
sqlCommand.Parameters.Add(
new SqlParameter { ParameterName = "@" + keyValuePair.Key, Value = keyValuePair.Value ?? DBNull.Value }
);
}

if (sqlCommand == null)
throw new KoppelingException("Stored procedure ({0}) aanroepen lukt niet", storedprocedureNaam);
return sqlCommand.ExecuteNonQuery();
}
....
}

关于C# "painless"如何调用带参数的存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20106137/

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