如何将C#的DateTime
值(FromCreateDate
和ToCreateDate
)传递给SQL Server 2005,以便从 View 中进行选择?
结果集CreateDate
列必须介于FromDateDate
和ToCreateDate
之间。
最佳答案
与其他任何参数完全相同...当然,这取决于您进行数据访问的方式,但是如果我们假设使用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/