108 lines
3.3 KiB
C#
108 lines
3.3 KiB
C#
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using SDA.DataProvider.Core;
|
|
|
|
namespace SDA.DataProvider.MSSQLWrappers
|
|
{
|
|
class MSSQLCommandParameterCollectionWrapper : SDACommandParameterCollectionWrapper
|
|
{
|
|
internal SqlParameterCollection Parameters
|
|
{
|
|
get
|
|
{
|
|
return Command.Parameters;
|
|
}
|
|
}
|
|
|
|
public override bool Contains(SDACommandParameterWrapper parameter)
|
|
{
|
|
return Parameters.Contains("@" + parameter.ParameterName);
|
|
}
|
|
|
|
public override int IndexOf(SDACommandParameterWrapper parameter)
|
|
{
|
|
return Parameters.IndexOf("@" + parameter.ParameterName);
|
|
}
|
|
|
|
internal SqlCommand Command;
|
|
|
|
internal MSSQLCommandParameterCollectionWrapper(SqlCommand command)
|
|
{
|
|
Command = command;
|
|
}
|
|
|
|
public override SDACommandParameterWrapper this[string parameterName]
|
|
{
|
|
get
|
|
{
|
|
if (!Parameters.Contains("@" + parameterName))
|
|
{
|
|
return null;
|
|
}
|
|
SqlParameter parameter = Parameters["@" + parameterName];
|
|
return new MSSQLCommandParameterWrapper(parameter);
|
|
}
|
|
set
|
|
{
|
|
Parameters["@" + parameterName] = ((MSSQLCommandParameterWrapper)value).Parameter;
|
|
}
|
|
}
|
|
|
|
public override SDACommandParameterWrapper this[int index]
|
|
{
|
|
get
|
|
{
|
|
return new MSSQLCommandParameterWrapper(Parameters[index]);
|
|
}
|
|
set
|
|
{
|
|
Parameters[index] = ((MSSQLCommandParameterWrapper)value).Parameter;
|
|
}
|
|
}
|
|
|
|
public override SDACommandParameterWrapper Add(SDACommandParameterWrapper parameter)
|
|
{
|
|
Parameters.Add(((MSSQLCommandParameterWrapper)parameter).Parameter);
|
|
return parameter;
|
|
}
|
|
|
|
public override SDACommandParameterWrapper Add(string name, SDADBType type)
|
|
{
|
|
SqlDbType dbtype = MSSQLParameterTypeConverter.ConvertSDADBTypeToSqlDbType(type);
|
|
MSSQLCommandParameterWrapper result = new MSSQLCommandParameterWrapper(Command.Parameters.Add("@" + name, dbtype));
|
|
return result;
|
|
}
|
|
|
|
public override SDACommandParameterWrapper Add(string name, SDADBType type, int size)
|
|
{
|
|
SqlDbType dbtype = MSSQLParameterTypeConverter.ConvertSDADBTypeToSqlDbType(type);
|
|
MSSQLCommandParameterWrapper result = new MSSQLCommandParameterWrapper(Command.Parameters.Add("@" + name, dbtype, size));
|
|
return result;
|
|
}
|
|
|
|
public override SDACommandParameterWrapper Add(string name, object value)
|
|
{
|
|
MSSQLCommandParameterWrapper result = new MSSQLCommandParameterWrapper(Command.Parameters.AddWithValue("@" + name, value));
|
|
return result;
|
|
}
|
|
|
|
public override void Remove(SDACommandParameterWrapper parameter)
|
|
{
|
|
Command.Parameters.Remove(((MSSQLCommandParameterWrapper)parameter).Parameter);
|
|
}
|
|
|
|
public override void Clear()
|
|
{
|
|
Command.Parameters.Clear();
|
|
}
|
|
|
|
public override int Count
|
|
{
|
|
get
|
|
{
|
|
return Parameters.Count;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|