OleDbCommand.Parameters Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает OleDbParameterCollection.
public:
property System::Data::OleDb::OleDbParameterCollection ^ Parameters { System::Data::OleDb::OleDbParameterCollection ^ get(); };
[System.Data.DataSysDescription("DbCommand_Parameters")]
public System.Data.OleDb.OleDbParameterCollection Parameters { get; }
public System.Data.OleDb.OleDbParameterCollection Parameters { get; }
[<System.Data.DataSysDescription("DbCommand_Parameters")>]
member this.Parameters : System.Data.OleDb.OleDbParameterCollection
member this.Parameters : System.Data.OleDb.OleDbParameterCollection
Public ReadOnly Property Parameters As OleDbParameterCollection
Значение свойства
Параметры инструкции SQL или хранимой процедуры. По умолчанию используется пустая коллекция.
- Атрибуты
Примеры
В следующем примере создается и OleDbCommand отображается его параметры. Для этого метод передается OleDbConnection, строка запроса, которая является инструкцией SQL SELECT и массивом OleDbParameter объектов.
public void CreateMyOleDbCommand(OleDbConnection connection,
string queryString, OleDbParameter[] parameters)
{
OleDbCommand command = new OleDbCommand(queryString, connection);
command.CommandText =
"SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?";
command.Parameters.Add(parameters);
for (int j=0; j<parameters.Length; j++)
{
command.Parameters.Add(parameters[j]) ;
}
string message = "";
for (int i = 0; i < command.Parameters.Count; i++)
{
message += command.Parameters[i].ToString() + "\n";
}
Console.WriteLine(message);
}
Public Sub CreateMyOleDbCommand(connection As OleDbConnection, _
queryString As String, parameters() As OleDbParameter)
Dim command As New OleDbCommand(queryString, connection)
command.CommandText = _
"SELECT CustomerID, CompanyName FROM Customers WHERE Country = ? AND City = ?"
command.Parameters.Add(parameters)
Dim j As Integer
For j = 0 To command.Parameters.Count - 1
command.Parameters.Add(parameters(j))
Next j
Dim message As String = ""
Dim i As Integer
For i = 0 To command.Parameters.Count - 1
message += command.Parameters(i).ToString() + ControlChars.Cr
Next i
Console.WriteLine(message)
End Sub
Комментарии
Поставщик .NET OLE DB не поддерживает именованные параметры для передачи параметров в инструкцию SQL или хранимую процедуру, вызываемую OleDbCommand, если для параметра CommandType задано значение Text. В этом случае необходимо использовать заполнитель вопросительного знака (?). Рассмотрим пример.
SELECT * FROM Customers WHERE CustomerID = ?
Таким образом, порядок OleDbParameter добавления OleDbParameterCollection объектов в объект должен напрямую соответствовать позиции заполнителя вопросительного знака для параметра в тексте команды.
Замечание
Если параметры в коллекции не соответствуют требованиям выполнения запроса, может возникнуть ошибка.
Дополнительные сведения см. в разделе "Настройка параметров" и "Типы данных параметров".