如何将C#的DateTime值(FromCreateDateToCreateDate)传递给SQL Server 2005,以便从 View 中进行选择?

结果集CreateDate列必须介于FromDateDateToCreateDate之间。

最佳答案

与其他任何参数完全相同...当然,这取决于您进行数据访问的方式,但是如果我们假设使用SqlCommand,则只需在TSQL中引用命名参数(@fromDate/@toDate),并将命名为SqlParameter s(带有.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);

我在示例中使用一个简单的计数只是为了保持简单;显然,您也可以从SELECT blah等中获取VIEW ...

关于c# - 将C#DateTime参数传递给SQL Server 2005吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3966094/

10-17 01:58