我想编写一个C#程序,它将从数据表(名为loadDT)中读取一行并更新数据库文件(名为Forecasts.mdb)。
我的数据表看起来像这样(每天的值是代表千瓦使用量预测的数字):
Hour Day1 Day2 Day3 Day4 Day5 Day6 Day7
1 519 520 524 498 501 476 451
我的数据库文件如下所示:
Day Hour KWForecast
1 1 519
2 1 520
3 1 524
......等等。
基本上,我希望能够从数据表中读取一行,然后将其外推到我的数据库文件中,一次一条记录。数据表中的每一行将导致写入数据库文件的七条记录。关于如何解决这个问题的任何想法?我可以连接到我的数据库,连接字符串工作,我可以从数据库更新和删除。我无法解决如何一次完成这一条记录的问题。
答案 0 :(得分:3)
您是否尝试循环输入数据库中的记录以及对输出数据库执行七次插入的每条记录?
很大程度上取决于您使用的API,它将具有这种模式:
var inputRecordSet = // connect somehow
var outputRecordSet = // ditto
while (!inputRecordSet.EOF)
{
outputRecordSet.Hour = inputRecordSet.Hour;
outputRecordSet.Day1 = inputRecordSet.Day;
outputRecordSet.KWForecast = inputRecordSet.Day1;
outputRecordSet.Insert();
outputRecordSet.Day2 = inputRecordSet.Day;
outputRecordSet.KWForecast = inputRecordSet.Day2;
outputRecordSet.Insert();
// and so on... for seven days
inputRecordSet.MoveNext();
}
答案 1 :(得分:1)
一种方法是将值放在一个数组中,然后将循环放在它上面:
while (reader.Read()) {
int hour = reader.ReadInt32(0);
int[] days = {
reader.ReadInt32(1),
reader.ReadInt32(2),
reader.ReadInt32(3),
reader.ReadInt32(4),
reader.ReadInt32(5),
reader.ReadInt32(6),
reader.ReadInt32(7)
};
for (int day = 0; day < days.Length; day++) {
// insert day+1, hour and days[day] in the database
}
}