private void BindParameters()
{
if (parameters.Count != 0)
{
byte[][] parameterValues = bind.ParameterValues;
Int16[] parameterFormatCodes = bind.ParameterFormatCodes;
bool bindAll = false;
bool bound = false;
if (parameterValues == null || parameterValues.Length != parameters.Count)
{
parameterValues = new byte[parameters.Count][];
bindAll = true;
}
for (Int32 i = 0; i < parameters.Count; i++)
{
if (! bindAll && parameters[i].Bound)
{
continue;
}
parameterValues[i] = parameters[i].TypeInfo.ConvertToBackend(parameters[i].Value, true, Connector.NativeToBackendTypeConverterOptions);
bound = true;
parameters[i].Bound = true;
if (parameterValues[i] == null) {
parameterFormatCodes[i]= (Int16)FormatCode.Binary;
} else {
parameterFormatCodes[i] = parameters[i].TypeInfo.SupportsBinaryBackendData ? (Int16)FormatCode.Binary : (Int16)FormatCode.Text;
}
}
if (bound)
{
bind.ParameterValues = parameterValues;
bind.ParameterFormatCodes = parameterFormatCodes;
}
}
}