我正在开发一个项目,我需要使用从sql server数据库读取的数据创建一个新的数据集。我需要显示过去四周内没有订购过任何产品的客户的姓名和联系信息。数据库中的clients表包含专门记录客户端最后订单日期的列。如何将该日期与今天的日期进行比较,并将相关信息添加到可用于在数据网格视图中显示的新数据集。
提前致谢。
string inactiveClient = "SELECT CustomerName, CustomerNumber FROM Customers";
int dateNow = DateTime.Now.Month;
int yearNow = DateTime.Now.Year;
using (SqlCommand cmd = new SqlCommand(inactiveClient, con))
{
using (SqlDataReader sdr = cmd.ExecuteReader())
{
string orderDate = sdr["LastOrderDate"].ToString();
int orderYear = Convert.ToInt32(orderDate.Remove(5));
orderDate = orderDate.Remove(0, 5);
orderDate = orderDate.Remove(3, 4);
int orderMonth = Convert.ToInt32(orderDate);
while (sdr.Read())
{
if ((orderYear <= yearNow) && (orderMonth < dateNow))
{
// Add to new dataset
}
}
}
}
这是我的基本想法。
答案 0 :(得分:0)
您不想获取所有记录并在客户端上自行进行过滤。使用您拥有数据库服务器的事实。
SELECT CustomerName, CustomerNumber FROM Customers
WHERE LastOrderDate < DATEADD(week, -4, CURRENT_TIMESTAMP)
我假设您使用的是MS SQL Server,而您的LastOrderDate是DATETIME列。如果要在文本中存储日期,则应更改该日期。