CHAPTER 21 ADO.NET PART I: THE CONNECTED LAYER
IsNullable
Gets or sets whether the parameter accepts null values.
ParameterName
Gets or sets the name of the DbParameter.
Size
Gets or sets the maximum parameter size of the data in bytes; this is only useful
for textual data.
Value
Gets or sets the value of the parameter.
Now let’s look at how to populate a command object’s collection of DBParameter-compatible objects
by reworking the following version of the InsertAuto() method to leverage parameter objects (you could
perform a similar reworking for your remaining methods; however, that’s not necessary for this
example):
public void InsertAuto(int id, string color, string make, string petName)
{
// Note the "placeholders" in the SQL query.
string sql = string.Format("Insert Into Inventory" +
"(CarID, Make, Color, PetName) Values" +
"(@CarID, @Make, @Color, @PetName)");
// This command will have internal parameters.
using(SqlCommand cmd = new SqlCommand(sql, this.sqlCn))
{
// Fill params collection.
SqlParameter param = new SqlParameter();
param.ParameterName = "@CarID";
param.Value = id;
param.SqlDbType = SqlDbType.Int;
cmd.P arameters.Add(param);
param = new SqlParameter();
param.ParameterName = "@Make";
param.Value = make;
param.SqlDbType = SqlDbType.Char;
param.Size = 10;
cmd.Parameters.Add(param);
param = new SqlParameter();
param.ParameterName = "@Color";
param.Value = color;
param.SqlDbType = SqlDbType.Char;
param.Size = 10;
cmd.Parameters.Add(param);
param = new SqlParameter();
param.ParameterName = "@PetName";
param.Value = petName;
param.SqlDbType = SqlDbType.Char;
param.Size = 10;
844