【发布时间】:2014-01-12 08:25:22
【问题描述】:
您好,我正在开发一个应用程序,用于在 C# Visual Studio 2010 中将数据从一个数据库服务器检索到另一个数据库服务器。
要求数据应按软件安装日期从数据库中检索,即特定日期,现在表示当前时间。
还有一个条件,当我们得到最旧的记录,比如2010-03-05 16:30:23,下一条记录和第一条记录的差应该是15分钟,比如下一条记录应该是2010-03-05 16:45:23。数据库每分钟有记录。
我已经尝试过以下但它不满足要求。
try
{
var con = new SqlConnection(Properties.Settings.Default.sConstr);
var cmd = new SqlCommand("SELECT * from RAW_S001T01 where Date_Time >='" + time + "'", con);
con.Open();
var dr = cmd.ExecuteReader();
var count = 0;
while (dr.Read())
{
var Date = (dr["Date_Time"].ToString());
var temp = Date.ToString(CultureInfo.InvariantCulture);
var UTime=time.Split(':');
string tempa = UTime[1].Substring(0, 2);
time = temp +int.Parse("15");
MessageBox.Show(time);
}
}
catch (Exception ex)
{
MessageBox.Show(@"Error.",ex.ToString());
}
我们如何解决这个问题?
【问题讨论】:
-
那么到底哪一部分出了问题?它在做什么或不做什么?
-
新“cmd”的设置似乎在您的while循环之外,所以它永远不会得到新的时间。
-
@LanceRoberts 我只是在特定日期之前获取所有记录。我希望他们在 15 分钟的间隔时间内完成
-
好的,那么您希望它们如何分区,您的数据方案是什么?
-
就像我的问题一样,如果我最旧的数据是时间'2010-03-05 16:30:23',那么在下一个循环运行下一条记录应该是时间'2010-03-05 16: 45:23'。我的数据方案是电表阅读器,它读取每分钟的用电量。
标签: c# sql sqldatareader data-retrieval