需要使用从数据库读取的特定值创建新数据集
Need to create a new dataset using specific values read from a database
我正在处理一个项目,我需要使用从 sql 服务器数据库读取的数据创建一个新数据集。我需要显示过去四个星期内未订购任何产品的客户的姓名和联系信息。数据库中的clients table有一列专门记录了一个客户最后一次下单的日期。我如何将该日期与今天的日期进行比较,并将相关信息添加到可用于在数据网格视图中显示的新数据集。
提前致谢。
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
}
}
}
}
这是我的基本想法。
您不想获取所有记录并自己在客户端上进行过滤。使用您拥有数据库服务器这一事实。
SELECT CustomerName, CustomerNumber FROM Customers
WHERE LastOrderDate < DATEADD(week, -4, CURRENT_TIMESTAMP)
我假设您使用的是 MS SQL 服务器并且您的 LastOrderDate 是 DATETIME 列。如果您在文本中存储日期,您应该更改它。
我正在处理一个项目,我需要使用从 sql 服务器数据库读取的数据创建一个新数据集。我需要显示过去四个星期内未订购任何产品的客户的姓名和联系信息。数据库中的clients table有一列专门记录了一个客户最后一次下单的日期。我如何将该日期与今天的日期进行比较,并将相关信息添加到可用于在数据网格视图中显示的新数据集。
提前致谢。
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
}
}
}
}
这是我的基本想法。
您不想获取所有记录并自己在客户端上进行过滤。使用您拥有数据库服务器这一事实。
SELECT CustomerName, CustomerNumber FROM Customers
WHERE LastOrderDate < DATEADD(week, -4, CURRENT_TIMESTAMP)
我假设您使用的是 MS SQL 服务器并且您的 LastOrderDate 是 DATETIME 列。如果您在文本中存储日期,您应该更改它。