OleDbParameter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет параметр для объекта OleDbCommand и (необязательно) его сопоставление со столбцом DataSet. Этот класс не наследуется.
public ref class OleDbParameter sealed : System::Data::Common::DbParameter, ICloneable
public ref class OleDbParameter sealed : 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))]
public sealed class OleDbParameter : MarshalByRefObject, ICloneable, System.Data.IDbDataParameter
[<System.ComponentModel.TypeConverter(typeof(System.Data.OleDb.OleDbParameter+OleDbParameterConverter))>]
type OleDbParameter = class
inherit DbParameter
interface IDataParameter
interface IDbDataParameter
interface 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 DbParameter
Implements ICloneable
Public NotInheritable Class OleDbParameter
Inherits MarshalByRefObject
Implements ICloneable, IDbDataParameter
- Наследование
- Наследование
- Атрибуты
- Реализации
Примеры
В следующем примере создается несколько экземпляров 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 использует позиционные параметры, помеченные вопросительным знаком (?), вместо именованных параметров.
При запросе базы данных Oracle с помощью поставщик OLE DB для Oracle (Майкрософт) (MSDAORA) и поставщика данных OLE DB.NET Framework использование LIKE
предложения для запроса значений в полях фиксированной длины может не возвращать все ожидаемые совпадения. Причина заключается в том, что, когда Oracle сопоставляет значения для полей фиксированной LIKE
длины в предложении, он соответствует всей длине строки, включая все заполненные конечные пробелы. Например, если таблица в базе данных Oracle содержит поле с именем "Поле1", определенное как 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) |
Выполняет инициализацию нового экземпляра класса OleDbParameter, использующего имя параметра и тип данных. |
OleDbParameter(String, OleDbType, Int32) |
Выполняет инициализацию нового экземпляра класса 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, использующего имя параметра, тип данных, длину и имя столбца источника. |
Свойства
DbType |
Возвращает или устанавливает тип DbType параметра. |
Direction |
Возвращает или задает значение, определяющее, предназначен ли параметр только для ввода, только для вывода, является ли он двунаправленным или возвращается хранимой процедурой. |
IsNullable |
Возвращает или задает значение, указывающее, принимает ли этот параметр значения NULL. |
OleDbType |
Возвращает или устанавливает тип OleDbType параметра. |
ParameterName |
Возвращает или задает имя таблицы для объекта OleDbParameter. |
Precision |
Возвращает или задает максимальное количество цифр, используемых для представления свойства Value. |
Scale |
Возвращает или задает число десятичных разрядов, до которых вычисляется значение Value. |
Size |
Возвращает или задает максимальный размер (в байтах) данных внутри столбца. |
SourceColumn |
Возвращает или задает имя исходного столбца, сопоставленного DataSet и используемого для загрузки или возвращения значения Value. |
SourceColumnNullMapping |
Возвращает или задает значение, показывающее, допускает ли исходный столбец значения NULL. Это позволяет DbCommandBuilder правильно создавать инструкции Update для столбцов со значением NULL. |
SourceVersion |
Возвращает или задает значение DataRowVersion, используемое при загрузке Value. |
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) |