I have code like this:
using (DbCommand command = factory.CreateCommand())
{
command.Connection = connection;
command.CommandText = string.Format("SELECT {0} FROM {1} WHERE {2} >= ? AND {2} <= ?",
selectColumns,
TableName,
TimeStampColumn);
var startTimeParam = command.CreateParameter();
startTimeParam.ParameterName = "@StartTime";
startTimeParam.DbType = DbType.DateTime;
startTimeParam.Value = StartDate;
var endTimeParam = command.CreateParameter();
endTimeParam.ParameterName = "@EndTime";
endTimeParam.DbType = DbType.DateTime;
endTimeParam.Value = EndDate;
DbDataAdapter adapter = factory.CreateDataAdapter();
adapter.SelectCommand = command;
adapter.SelectCommand.Parameters.Add(startTimeParam);
adapter.SelectCommand.Parameters.Add(endTimeParam);
adapter.Fill(table);
}
But I'm unable to set the parameters for the select command. I tried use @StartTime and @EndTime in the instead of ? but i got message Must declare scalar variable @StartTime.
When I'm using ? instead of @StartTime or @EndTime i got no results.
It is working only when I put all variable in the String.Format() function, but i don't want to use is like this.