EF数据库框架:使用DbTypeName创建特殊参数类型(Oracle/MySql数据库)
接口定义
C# 全选
/// <summary>
/// 创建SQL参数
/// </summary>
/// <param name="name">参数名称</param>
/// <param name="dbTypeName">参数类型名称(如:Varchar2, RefCursor)</param>
/// <param name="direction">参数方向</param>
/// <param name="value">参数值</param>
/// <returns></returns>
DbParameter CreateParameter(string name, object value, string dbTypeName, ParameterDirection direction);
使用方法
C# 全选
var p1 = db.CreateParameter("PARAM1", "code1");
var p2 = db.CreateParameter("PARAM2", "code2");
var p3 = db.CreateParameter("PARAM3", DateTime.Today);
var p4 = db.CreateParameter("OUTPUT_CURSOR", null, "RefCursor", ParameterDirection.Output); //创建特殊类型参数
var data = db.GetDataTable("USP_TEST", CommandType.StoredProcedure, p1, p2, p3, p4);
其他参考代码
动态创建输入、输出参数
C# 全选
//输入参数
if (ParameterDirection.Input == ioType)
{
Type type = db.meta_ConvertToDotNetType(item.ParamType);//数据库类型转.NET类型
Object value = TypeDescriptor.GetConverter(type).ConvertFromString(item.ParamValue ?? "");
listParam.Add(db.CreateParameter(item.ParamName, value, item.ParamType, ioType));
}
else if (ParameterDirection.Output == ioType)
{
DbParameter p = db.CreateParameter(item.ParamName, item.ParamValue ?? "", item.ParamType, ioType);
p.Size = 10000000;
listParam.Add(p);
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
CSFramework.EF C/S框架网