Name

IDataParameter

Synopsis

This class represents a parameter for a Command object. Parameters are accessed using the IDbCommand.Parameters collection. Parameters are identified using the ParameterName property. With the SQL Server provider, parameter names are required, and the SQL statement takes the form:

SELECT * FROM Customers WHERE CustomerID = @CustomerID

and the parameter must be named @CustomerID. With the OLE DB provider, however, a question mark placeholder is used instead. Order is important, but the parameter name isn’t. The SQL statement takes the form:

SELECT * FROM Customers WHERE CustomerID = ?

(and the CustomerID value must be first in the parameter collection).

The IDataParameter interface also defines several other important properties. DbType indicates the underlying database data type (although individual ADO.NET providers usually provide an enumeration specific to the data source), and Direction determines whether the parameter is sent to the stored procedure, retrieve from it, or both. You can set the value for the parameter directly using the Value property. You can map it to a column in the DataSet by setting the name of the column in the SourceColumn property. This is primarily useful when you are defining a generic update, insert, or delete command for use with a data adapter. Because this command must work with any modified row, you can’t directly code a parameter value. Instead, the value must be retrieved from the appropriate DataRow. You can also specify the version of the value using the SourceVersion property. For example, if the parameter corresponds to a WHERE clause that selects the row that needs to be updated, you use the original value. If the parameter corresponds to the SET clause in an UPDATE statement, use the current value to apply the new information to the data source.

public interface IDataParameter {

// Public Instance Properties

   public DbType DbType{set; get; } 

   public ParameterDirection Direction{set; get; } 

   public bool IsNullable{get; } 

   public string ParameterName{set; get; } 

   public string SourceColumn{set; get; } 

   public DataRowVersion SourceVersion{set; get; } 

   public object Value{set; get; } 

}