gpt4 book ai didi

c# - 如何使用 CaSTLe ActiveRecord 执行存储过程?

转载 作者:太空狗 更新时间:2023-10-29 19:44:45 28 4
gpt4 key购买 nike

我相信网上某个地方有关于这个主题的讨论,但我丢失了 url,我无法通过谷歌搜索找到它。

我现在可能会尝试的是:

ISessionFactoryHolder factoryHolder = ActiveRecordMediator<EntityClass>.GetSessionFactoryHolder();
ISession session = factoryHolder.CreateSession(typeof(EntityClass));
try
{
IDbCommand cmd = session.Connection.CreateCommand();
cmd.CommandText = "spName";
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{

}
finally
{
factoryHolder.ReleaseSession(session);
}

但是,我不太确定这是否是执行此操作的正确方法,或者是否存在更好的方法。

最佳答案

这对我有用(带有参数和动态结果表的存储过程):

// get Connection
System.Data.IDbConnection con = ActiveRecordMediator.GetSessionFactoryHolder()
.GetSessionFactory(typeof(Autocomplete))
.ConnectionProvider.GetConnection();

// set Command
System.Data.IDbCommand cmd = con.CreateCommand();
cmd.CommandText = "name_of_stored_procedure";
cmd.CommandType = System.Data.CommandType.StoredProcedure;

// set Parameter of Stored Procedure
System.Data.SqlClient.SqlParameter param = new System.Data.SqlClient.SqlParameter("@parameter_name", System.Data.SqlDbType.NVarChar);
param.Value = "value_of_parameter";
((System.Data.SqlClient.SqlParameterCollection)cmd.Parameters).Add(param);

// call Stored Procedure (without getting result)
cmd.ExecuteNonQuery();

// ... or read results
System.Data.SqlClient.SqlDataReader r = (System.Data.SqlClientSqlDataReader)cmd.ExecuteReader();
while(r.Read()) {
System.Console.WriteLine("result first col: " + r.GetString(0));
}

关于c# - 如何使用 CaSTLe ActiveRecord 执行存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188250/

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