gpt4 book ai didi

c# - 使用 Dapper 调用 SQL 过程

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

我编写了以下方法来调用我的过程并将返回的数据放入数据集中。

public class GetDataFromProc
{
string constr;
public DataSet CallProcToDataSet(string procName)
{
DataSet ds = new DataSet();

constr = ConfigurationManager.ConnectionStrings["DataBase"].ConnectionString;

using (SqlConnection con = new SqlConnection(constr))
{

using (SqlCommand cmd = new SqlCommand(procName))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;


using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
sda.Fill(ds);
}
}
}
return ds;
}

我想要做的是使用 Dapper NuGet 包。通过文档检查,我可以看到示例 proc 调用行如下:

var user = cnn.Query<User>("spGetUser", new { Id = 1 }, commandType: CommandType.StoredProcedure).SingleOrDefault();

但是,我不确定将我的方法转换为上述示例的最佳方法是什么。有更多 Dapper 经验的人可以帮助我吗?

最佳答案

// Declare a model, with a property/field for every column
// that you care about from your Result
public class YourModel {

public int Id {get;set;}
// Whatever other columns your result has...
}



public class GetDataFromProc
{
string constr;
public IEnumerable<YourModel> CallProcToDataSet(string procName)
{
constr = ConfigurationManager.ConnectionStrings["DataBase"].ConnectionString;

using (SqlConnection con = new SqlConnection(constr))
{
// If you expect only one row
var result = cnn.Query<YourModel>(procName, new { anyParametersYouHave = theirValue }, commandType: CommandType.StoredProcedure).SingleOrDefault();

// If you expect more than one row and want a collection
var results= cnn.Query<YourModel>(procName, new { anyParametersYouHave = theirValue }, commandType: CommandType.StoredProcedure).ToList();

}
}
}

关于c# - 使用 Dapper 调用 SQL 过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46050274/

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