OleDbParameter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет параметр для OleDbCommand столбца и при необходимости его сопоставление DataSet . Этот класс не наследуется.
public ref class OleDbParameter sealed : MarshalByRefObject, ICloneable, System::Data::IDbDataParameter
public ref class OleDbParameter sealed : System::Data::Common::DbParameter, ICloneable
[System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameterConverter))]
public sealed class OleDbParameter : MarshalByRefObject, ICloneable, System.Data.IDbDataParameter
[System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameter+OleDbParameterConverter))]
public sealed class OleDbParameter : System.Data.Common.DbParameter, ICloneable
[<System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameterConverter))>]
type OleDbParameter = class
inherit MarshalByRefObject
interface IDbDataParameter
interface IDataParameter
interface ICloneable
[<System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameter+OleDbParameterConverter))>]
type OleDbParameter = class
inherit DbParameter
interface ICloneable
interface IDbDataParameter
interface IDataParameter
Public NotInheritable Class OleDbParameter
Inherits MarshalByRefObject
Implements ICloneable, IDbDataParameter
Public NotInheritable Class OleDbParameter
Inherits DbParameter
Implements ICloneable
- Наследование
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере создается несколько экземпляров OleDbParameter из OleDbParameterCollection коллекции в пределах OleDbDataAdapterколлекции. Эти параметры используются для выбора данных из источника данных и размещения данных в них DataSet. В этом примере предполагается, что уже DataSet создано и OleDbDataAdapter создано с помощью соответствующей схемы, команд и подключения.
public DataSet GetDataSetFromAdapter(
DataSet dataSet, string connectionString, string queryString)
{
using (OleDbConnection connection =
new OleDbConnection(connectionString))
{
OleDbDataAdapter adapter =
new OleDbDataAdapter(queryString, connection);
// Set the parameters.
adapter.SelectCommand.Parameters.Add(
"@CategoryName", OleDbType.VarChar, 80).Value = "toasters";
adapter.SelectCommand.Parameters.Add(
"@SerialNum", OleDbType.Integer).Value = 239;
// Open the connection and fill the DataSet.
try
{
connection.Open();
adapter.Fill(dataSet);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
// The connection is automatically closed when the
// code exits the using block.
}
return dataSet;
}
Public Function GetDataSetFromAdapter( _
ByVal dataSet As DataSet, ByVal connectionString As String, _
ByVal queryString As String) As DataSet
Using connection As New OleDbConnection(connectionString)
Dim adapter As New OleDbDataAdapter(queryString, connection)
' Set the parameters.
adapter.SelectCommand.Parameters.Add( _
"@CategoryName", OleDbType.VarChar, 80).Value = "toasters"
adapter.SelectCommand.Parameters.Add( _
"@SerialNum", OleDbType.Integer).Value = 239
' Open the connection and fill the DataSet.
Try
connection.Open()
adapter.Fill(dataSet)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
' The connection is automatically closed when the
' code exits the Using block.
End Using
Return dataSet
End Function
Комментарии
Ole DB.NET Framework Data Provider использует позиционные параметры, помеченные вопросительным знаком (?) вместо именованных параметров.
При запросе базы данных Oracle с помощью предложения Microsoft поставщика OLE DB для Oracle (MSDAORA) и OLE DB.NET Framework Data Provider, используя предложение LIKE для запроса значений в полях фиксированной длины, может не возвращать все ожидаемые совпадения. Причина в том, что при совпадении значений Oracle для полей фиксированной длины в LIKE предложении он соответствует всей длине строки, включая все конечные пробелы. Например, если таблица в базе данных Oracle содержит поле с именем Field1, которое определено как char(3), и введите значение "a" в строку этой таблицы, следующий код не возвращает строку.
Dim queryString As String = "SELECT * FROM Table1 WHERE Field1 LIKE ?"
Dim command As OleDbCommand = New OleDbCommand(queryString, connection)
command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a"
Dim reader As OleDbDataReader = command.ExecuteReader()
string queryString = "SELECT * FROM Table1 WHERE Field1 LIKE ?";
OleDbCommand command = new OleDbCommand(queryString, connection);
command.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a";
OleDbDataReader reader = command.ExecuteReader();
Это связано с тем, что Oracle сохраняет значение столбца как "a" (заполнение "a", с конечными пробелами в фиксированной длине поля 3), которое Oracle не рассматривает как совпадение значения параметра "a" в случае LIKE сравнения полей фиксированной длины.
Чтобы устранить эту проблему, добавьте знак подстановочного знака ("%") к значению параметра ("a%") или используйте сравнение SQL = .
Конструкторы
| Имя | Описание |
|---|---|
| OleDbParameter() |
Инициализирует новый экземпляр класса OleDbParameter. |
| OleDbParameter(String, Object) |
Инициализирует новый экземпляр OleDbParameter класса, использующего имя параметра и значение нового OleDbParameter. |
| OleDbParameter(String, OleDbType, Int32, ParameterDirection, Boolean, Byte, Byte, String, DataRowVersion, Object) |
Инициализирует новый экземпляр класса, использующего имя параметра, тип данных, длину, имя исходного OleDbParameter столбца, направление параметра, числовую точность и другие свойства. |
| OleDbParameter(String, OleDbType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object) |
Инициализирует новый экземпляр класса, использующего имя параметра, тип данных, длину, имя исходного OleDbParameter столбца, направление параметра, числовую точность и другие свойства. |
| OleDbParameter(String, OleDbType, Int32, String) |
Инициализирует новый экземпляр класса, использующего имя параметра, тип данных, длину и имя исходного OleDbParameter столбца. |
| OleDbParameter(String, OleDbType, Int32) |
Инициализирует новый экземпляр OleDbParameter класса, использующего имя параметра, тип данных и длину. |
| OleDbParameter(String, OleDbType) |
Инициализирует новый экземпляр OleDbParameter класса, использующего имя параметра и тип данных. |
Свойства
| Имя | Описание |
|---|---|
| DbType |
Возвращает или задает DbType параметр. |
| Direction |
Возвращает или задает значение, указывающее, является ли параметр только входным, выходным, двунаправленным или параметром возвращаемого значения хранимой процедуры. |
| IsNullable |
Возвращает или задает значение, указывающее, принимает ли параметр значения NULL. |
| OleDbType |
Возвращает или задает OleDbType параметр. |
| ParameterName |
Возвращает или задает имя OleDbParameterобъекта . |
| Precision |
Возвращает или задает максимальное количество цифр, используемых для представления Value свойства. |
| Scale |
Возвращает или задает число десятичных разрядов, для которых Value разрешено. |
| Size |
Возвращает или задает максимальный размер данных в байтах столбца. |
| SourceColumn |
Возвращает или задает имя исходного столбца, сопоставленного с DataSet и используемым для загрузки или возврата Value. |
| SourceColumnNullMapping |
Возвращает или задает значение, указывающее, является ли исходный столбец пустым. Это позволяет DbCommandBuilder правильно создавать инструкции Update для столбцов, допускающих значение NULL. |
| SourceVersion |
Возвращает или задает значение, используемое при загрузке DataRowVersionValue. |
| Value |
Возвращает или задает значение параметра. |
Методы
| Имя | Описание |
|---|---|
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetLifetimeService() |
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InitializeLifetimeService() |
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| ResetDbType() |
Сбрасывает тип, связанный с этим OleDbParameter. |
| ResetOleDbType() |
Сбрасывает тип, связанный с этим OleDbParameter. |
| ToString() |
Возвращает строку, содержащую объект ParameterName. |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| ICloneable.Clone() |
Описание этого элемента см. в разделе Clone(). |
| IDbDataParameter.Precision |
Указывает точность числовых параметров. (Унаследовано от DbParameter) |
| IDbDataParameter.Scale |
Описание этого элемента см. в разделе Scale. (Унаследовано от DbParameter) |