本文整理汇总了C#中System.Data.Common.DbParameter.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# DbParameter.GetType方法的具体用法?C# DbParameter.GetType怎么用?C# DbParameter.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Common.DbParameter
的用法示例。
在下文中一共展示了DbParameter.GetType方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetDbType
public static void SetDbType(DbParameter param, string type)
{
if (param == null) return;
if (string.IsNullOrWhiteSpace(type)) return;
var paramType = param.GetType();
PropertyInfo dbTypeProp = null;
if (!_DbTypePropertyCache.TryGetValue(paramType, out dbTypeProp))
{
dbTypeProp = paramType.GetProperties().Where(x => x.GetCustomAttributes(typeof(DbProviderSpecificTypePropertyAttribute), true).Any()).FirstOrDefault();
_DbTypePropertyCache[paramType] = dbTypeProp;
}
if (dbTypeProp == null) return;
try { dbTypeProp.SetValue(param, Enum.Parse(dbTypeProp.PropertyType, type)); }
catch (ArgumentException) { }
}
示例2:
void DatabaseInfo.SetParameterType( DbParameter parameter, string dbTypeString )
{
var oracleDbTypeProperty = parameter.GetType().GetProperty( "OracleDbType" );
oracleDbTypeProperty.SetValue( parameter, Enum.Parse( factory.GetType().Assembly.GetType( "Oracle.DataAccess.Client.OracleDbType" ), dbTypeString ), null );
}
示例3: InitializeParameter
internal override void InitializeParameter(ProviderType type, DbParameter parameter, object value)
{
SqlType sqlType = (SqlType)type;
if(sqlType.IsRuntimeOnlyType)
{
throw Error.BadParameterType(sqlType.GetClosestRuntimeType());
}
SqlClient.SqlParameter sParameter = parameter as SqlClient.SqlParameter;
if(sParameter != null)
{
sParameter.SqlDbType = sqlType.SqlDbType;
if(sqlType.HasPrecisionAndScale)
{
sParameter.Precision = (byte)sqlType.Precision;
sParameter.Scale = (byte)sqlType.Scale;
}
}
else
{
PropertyInfo piSqlDbType = parameter.GetType().GetProperty("SqlDbType");
if(piSqlDbType != null)
{
piSqlDbType.SetValue(parameter, sqlType.SqlDbType, null);
}
if(sqlType.HasPrecisionAndScale)
{
PropertyInfo piPrecision = parameter.GetType().GetProperty("Precision");
if(piPrecision != null)
{
piPrecision.SetValue(parameter, Convert.ChangeType(sqlType.Precision, piPrecision.PropertyType, CultureInfo.InvariantCulture), null);
}
PropertyInfo piScale = parameter.GetType().GetProperty("Scale");
if(piScale != null)
{
piScale.SetValue(parameter, Convert.ChangeType(sqlType.Scale, piScale.PropertyType, CultureInfo.InvariantCulture), null);
}
}
}
parameter.Value = GetParameterValue(sqlType, value);
int? determinedSize = DetermineParameterSize(sqlType, parameter);
if(determinedSize.HasValue)
{
parameter.Size = determinedSize.Value;
}
}
示例4: SetCursorParam
/// <summary>
/// 添加游标参数(针对Oracle数据库)
/// </summary>
/// <param name="param">参数对象</param>
public override void SetCursorParam(DbParameter param)
{
param.Direction = System.Data.ParameterDirection.Output;
var dbTypeProperty = param.GetType().GetProperty("OracleDbType");
var typeValue = EnumHelper.ToEnum("Oracle.ManagedDataAccess.Client.OracleDbType,Oracle.ManagedDataAccess", "RefCursor");
dbTypeProperty.SetValue(param, typeValue, null);
}
示例5: AssignParameterDbType
public static void AssignParameterDbType(DbParameter parameter, string systemType)
{
if (systemType == "SByte")
parameter.DbType = DbType.Int16;
else
if (systemType == "TimeSpan")
parameter.DbType = DbType.String;
else
if ((systemType == "Guid") && parameter.GetType().Name.Contains("Oracle"))
parameter.DbType = DbType.Binary;
else
parameter.DbType = ((DbType)(TypeDescriptor.GetConverter(typeof(DbType)).ConvertFrom(systemType)));
}
示例6: AddDbParameterStatements
private void AddDbParameterStatements (CodeMemberMethod m,
CodeExpression expr,
DbParameter param)
{
object dbType = param.FrameworkDbType;
string srcColumn = null;
if (param.SourceColumn != String.Empty)
srcColumn = param.SourceColumn;
CodeExpression[] args = new CodeExpression[] {
Const (param.ParameterName),
PropRef (Local(dbType.GetType().FullName), dbType.ToString ()),
Const (param.Size),
PropRef(Local(typeof (ParameterDirection).FullName), param.Direction.ToString ()),
Const (param.IsNullable),
Const (((IDbDataParameter)param).Precision),
Const (((IDbDataParameter)param).Scale),
Const (srcColumn),
PropRef (Local (typeof (DataRowVersion).FullName), param.SourceVersion.ToString ()),
/* Const (param.SourceColumnNullMapping), */ // TODO: Investigate with other providers
Const (param.Value)
};
m.Statements.Add (Eval (MethodInvoke (expr, "Add", New (param.GetType (), args))));
}
示例7: AddRefCursorParameter
private static void AddRefCursorParameter(DbParameter parameter)
{
//we don't want a direct dependency, so we use reflection
var fullName = parameter.GetType().FullName;
if (fullName == "System.Data.OracleClient.OracleParameter")
{
var prop = parameter.GetType().GetProperty("OracleType");
if (prop != null)
{
//OracleType.Cursor
prop.SetValue(parameter, 5, null);
}
}
else if (fullName == "Oracle.DataAccess.Client.OracleParameter")
{
var prop = parameter.GetType().GetProperty("OracleDbType");
if (prop != null)
{
//OracleDbType.RefCursor
prop.SetValue(parameter, 121, null);
}
}
}
示例8:
void DatabaseInfo.SetParameterType( DbParameter parameter, string dbTypeString )
{
var mySqlDbTypeProperty = parameter.GetType().GetProperty( "MySqlDbType" );
mySqlDbTypeProperty.SetValue( parameter, Enum.Parse( factory.GetType().Assembly.GetType( "MySql.Data.MySqlClient.MySqlDbType" ), dbTypeString ), null );
}