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.