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;
using System.Collections;
using System.Globalization;
namespace DotNetDataProviderTemplate
{
/*
* Because IDataParameterCollection is primarily an IList,
* the sample can use an existing class for most of the implementation.
*/
public class TemplateParameterCollection : ArrayList, IDataParameterCollection
{
public object this[string index]
{
get
{
return this[IndexOf(index)];
}
set
{
this[IndexOf(index)] = value;
}
}
public bool Contains(string parameterName)
{
return(-1 != IndexOf(parameterName));
}
public int IndexOf(string parameterName)
{
int index = 0;
foreach(TemplateParameter item in this)
{
if (0 == _cultureAwareCompare(item.ParameterName, parameterName))
{
return index;
}
index++;
}
return -1;
}
public void RemoveAt(string parameterName)
{
RemoveAt(IndexOf(parameterName));
}
public override int Add(object value)
{
return Add((TemplateParameter)value);
}
public int Add(TemplateParameter value)
{
if (((TemplateParameter)value).ParameterName != null)
{
return base.Add(value);
}
else
throw new ArgumentException("parameter must be named");
}
public int Add(string parameterName, DbType type)
{
return Add(new TemplateParameter(parameterName, type));
}
public int Add(string parameterName, object value)
{
return Add(new TemplateParameter(parameterName, value));
}
public int Add(string parameterName, DbType dbType, string sourceColumn)
{
return Add(new TemplateParameter(parameterName, dbType, sourceColumn));
}
private int _cultureAwareCompare(string strA, string strB)
{
return CultureInfo.CurrentCulture.CompareInfo.Compare(strA, strB, CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth | CompareOptions.IgnoreCase);
}
}
}