Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
using System;
using System.Data;
namespace DotNetDataProviderTemplate
{
public class TemplateParameter : IDataParameter
{
DbType m_dbType = DbType.Object;
ParameterDirection m_direction = ParameterDirection.Input;
bool m_fNullable = false;
string m_sParamName;
string m_sSourceColumn;
DataRowVersion m_sourceVersion = DataRowVersion.Current;
object m_value;
public TemplateParameter()
{
}
public TemplateParameter(string parameterName, DbType type)
{
m_sParamName = parameterName;
m_dbType = type;
}
public TemplateParameter(string parameterName, object value)
{
m_sParamName = parameterName;
this.Value = value;
// Setting the value also infers the type.
}
public TemplateParameter( string parameterName, DbType dbType, string sourceColumn )
{
m_sParamName = parameterName;
m_dbType = dbType;
m_sSourceColumn = sourceColumn;
}
public DbType DbType
{
get { return m_dbType; }
set { m_dbType = value; }
}
public ParameterDirection Direction
{
get { return m_direction; }
set { m_direction = value; }
}
public Boolean IsNullable
{
get { return m_fNullable; }
}
public String ParameterName
{
get { return m_sParamName; }
set { m_sParamName = value; }
}
public String SourceColumn
{
get { return m_sSourceColumn; }
set { m_sSourceColumn = value; }
}
public DataRowVersion SourceVersion
{
get { return m_sourceVersion; }
set { m_sourceVersion = value; }
}
public object Value
{
get
{
return m_value;
}
set
{
m_value = value;
m_dbType = _inferType(value);
}
}
private DbType _inferType(Object value)
{
switch (Type.GetTypeCode(value.GetType()))
{
case TypeCode.Empty:
throw new SystemException("Invalid data type");
case TypeCode.Object:
return DbType.Object;
case TypeCode.DBNull:
case TypeCode.Char:
case TypeCode.SByte:
case TypeCode.UInt16:
case TypeCode.UInt32:
case TypeCode.UInt64:
// Throw a SystemException for unsupported data types.
throw new SystemException("Invalid data type");
case TypeCode.Boolean:
return DbType.Boolean;
case TypeCode.Byte:
return DbType.Byte;
case TypeCode.Int16:
return DbType.Int16;
case TypeCode.Int32:
return DbType.Int32;
case TypeCode.Int64:
return DbType.Int64;
case TypeCode.Single:
return DbType.Single;
case TypeCode.Double:
return DbType.Double;
case TypeCode.Decimal:
return DbType.Decimal;
case TypeCode.DateTime:
return DbType.DateTime;
case TypeCode.String:
return DbType.String;
default:
throw new SystemException("Value is of unknown data type");
}
}
}
}