Точно так же, как и любой другой параметр ... конечно, это зависит от того, как вы делаете ваши доступа к данным, но если мы предположим SqlCommand
вы бы просто сослаться на именованный параметр (@fromDate
/@toDate
) в TSQL, и добавьте по имени SqlParameter
с (с .Value = theDate
) в команде:
DateTime end = DateTime.Today, start = end.AddDays(-7); // the last week
using (var conn = new SqlConnection(connectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.Parameters.AddWithValue("@from", start); // fine for DateTime; for strings, use more explicit param
cmd.Parameters.AddWithValue("@to", end); // construction to avoid lots of different-length plans
cmd.CommandText = "SELECT COUNT(1) FROM [Users] WHERE LastSeen >= @from AND LastSeen < @to";
int count = (int) cmd.ExecuteScalar();
}
с помощью LINQ и т.д. вы бы просто использовать его в запросе, то есть
int count = db.Users.Count(user => user.LastSeen>=start && user.LastSeen<end);
Я использую простой co нет в примерах, просто чтобы это было просто; Очевидно, вы можете SELECT blah
от VIEW
и т.д. тоже ...
Ну, это ratherly озадаченно ситуация: Я хотел бы сделать доклад в способ, который, если мой пользователь ввел дату для FromCreateDate, тогда я сравниваю его с столбцом createDate, если нет, то я сравниваю столбцы createate только с значением ToCreateDate (т.е. <= ToCreateDate) – odiseh
, тогда вам нужно что-то вроде: 'WHERE createDate> = @ fromDate AND (@toDate IS NULL ИЛИ createDate <= @toDate) '. –