kreta/Sda.DataProvider/SDACommandParameterCollection.cs
2024-03-13 00:33:46 +01:00

153 lines
4.6 KiB
C#

using System;
using System.Diagnostics.CodeAnalysis;
using JetBrains.Annotations;
using SDA.DataProvider.Core;
namespace SDA.DataProvider
{
/// <summary>
/// Adatbázis-parancs paramétereinek listája.
/// </summary>
[SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix")]
public class SDACommandParameterCollection
{
internal SDACommandWrapper Command;
protected SDACommandParameterCollection()
{
}
internal SDACommandParameterCollection(SDACommandWrapper command)
{
Command = command;
}
internal virtual SDACommandParameterCollectionWrapper Parameters
{
get
{
return Command.Parameters;
}
}
/// <summary>
/// Visszaadja a megadott nevű paraméter objektumot.
/// </summary>
[CanBeNull]
public virtual SDACommandParameter this[string index]
{
get
{
SDACommandParameterWrapper parameter = Parameters[index];
return parameter != null ? new SDACommandParameter(parameter) : null;
}
}
/// <summary>
/// Visszaadja a megadott sorszámú paraméter objektumot.
/// </summary>
[NotNull]
public SDACommandParameter this[int index]
{
get
{
return new SDACommandParameter(Parameters[index]);
}
set
{
if (value == null)
{
throw new ArgumentNullException(nameof(value));
}
Parameters[index] = value.Parameter;
}
}
/// <summary>
/// Új paramétert vesz fel a listába.
/// </summary>
/// <param name="parameter">A listába felveendő paraméter objektum</param>
/// <returns>A listába felvett paraméter objektum</returns>
[NotNull]
public virtual SDACommandParameter Add(SDACommandParameter parameter)
{
if (parameter == null)
{
throw new ArgumentNullException(nameof(parameter));
}
Command.Parameters.Add(parameter.Parameter);
return parameter;
}
/// <summary>
/// Új paramétert vesz fel a listába.
/// </summary>
/// <param name="name">A paraméter neve</param>
/// <param name="type">A paraméter típusa</param>
/// <returns>A listába felvett paraméter objektum</returns>
[NotNull]
public virtual SDACommandParameter Add(string name, SDADBType type)
{
return new SDACommandParameter(Command.Parameters.Add(name, type));
}
/// <summary>
/// Új paramétert vesz fel a listába.
/// </summary>
/// <param name="name">A paraméter neve</param>
/// <param name="type">A paraméter típusa</param>
/// <param name="size">A paraméterhez tartozó oszlop mérete</param>
/// <returns>A listába felvett paraméter objektum</returns>
[NotNull]
public virtual SDACommandParameter Add(string name, SDADBType type, int size)
{
return new SDACommandParameter(Command.Parameters.Add(name, type, size));
}
/// <summary>
/// Új paramétert vesz fel a listába.
/// </summary>
/// <param name="name">A paraméter neve</param>
/// <param name="value">A paraméter értéke</param>
/// <returns>A listába felvett paraméter objektum</returns>
[NotNull]
public virtual SDACommandParameter Add(string name, object value)
{
return new SDACommandParameter(Command.Parameters.Add(name, value));
}
/// <summary>
/// Eltávolítja a megadott paramétert a listából.
/// </summary>
/// <param name="parameter">Az eltávolítandó paraméter</param>
public virtual void Remove(SDACommandParameter parameter)
{
if (parameter == null)
{
throw new ArgumentNullException(nameof(parameter));
}
Command.Parameters.Remove(parameter.Parameter);
}
/// <summary>
/// Kiüríti a paraméterlistát.
/// </summary>
public virtual void Clear()
{
Command.Parameters.Clear();
}
/// <summary>
/// Command paraméterek száma
/// </summary>
/// <returns></returns>
public virtual int Count()
{
return Parameters.Count;
}
}
}