rak*_*los 1 c# database stored-procedures
假设你有一些简单的sprocs,例如
AddXYZ(param1,param 2 ......等)
getAllXYZ()
getXYZ(ID)
什么是从"数据库层"调用这些sprocs的"最佳实践"方法
我不想使用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
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您没有指定要连接的数据库引擎,因此我使用了通用接口来抽象您.如果你希望(虽然我一般不赞成代码,做这个)你至少可以在添加参数方面使用特定于平台的类,使事情稍微容易,(代码是不是基于接口的方法,因为详细)
这是你想要的?
SqlCommand cmd = new SqlCommand("AddXYZ", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@param1", someValue));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
412 次 |
| 最近记录: |