У меня есть файл журнала, который может содержать одно и то же событие (Проверка) несколько раз, т.е.:
ID: 001 Результат проверки:
Начало проверки: 05: 42: 34
Конец проверки: 07: 12: 52
Результат проверки:
Начало проверки: 12: 38: 01
Конец проверки: 14: 05: 12
Я создал динамическиэлементы управления (метка и TextBox или DateTimePicker), которые отображают эту информацию для пользователя;я хочу знать, как привязать эти элементы управления к моему набору данных таким образом, чтобы при записи в базу данных каждая проверка представляла собой новую строку, связанную с тем же идентификатором, например:
UID | ID | Start | End
1 | 001 | 05:42:34 | 07:12:52
2 | 001 | 12:38:01 | 14:05:12
Codewise:Я указываю программе каталог журналов, которые отображаются в контрольном списке.При изменении SelectedIndex я вызываю следующее:
void ParseImagerLogs(string source)
{
int i = 0;
//Log fields are parsed to a key/value pair
if (key.Equals("LogID"))
{
logIdTextBox.Text = value
}
if (key.Equals("VerStarted"))
{
//Date format ddd MMM dd HH:mm:ss yyyy is parsed to a useable format and
//saved as timeStart
verStartedDateTimePicker.Value = verTimeStart;
}
if (key.Equals("VerEnded"))
{
//Same parsing technique
verEndedDateTimePicker.Value = verTimeEnd;
//Work out the elapsed time
verTime - timeEnd.Subtract(timeStart).ToString();
//Pass the fields to a new method which dynamically generates the
GenerateVerificationFields(i, verStartedDateTimePicker.Value, verEndeDateTimePicker.Value, verTime.TextBox
//I have my first verification instance, so i++ and look for the next one.
i++;
}
}
private void GenerateVerificationFields(int amount, DateTime verStartval, DateTime verEndval, string verTimeval)
{
int i = amount;
int j = i + 1;
//Create groupBox
GroupBox groupBox = new GroupBox();
groupBox.Name = "verGroup" + i.ToString();
groupBox.Width = 430;
groupBox.Height = 120;
groupBox.Left = 5;
groupBox.Top = 42 + (groupBox.Height * i) + (10 * i);
groupBox.Text = "Verification #" + j.ToString();
//Create VerStart
DateTimePicker verStart = new DateTimePicker();
verStart.Name = "verStart" + i.ToString();
verStart.Width = 224;
verStart.Height = 22;
verStart.Location = new Point(160, 25);
verStart.DataBindings.Add(new Binding("Value", acqreports_testDataSet, "verification.VerStarted"));
verStart.Value = verStartval;
//Create VerEnded
DateTimePicker verEnd = new DateTimePicker();
verEnd.Name = "verStart" + i.ToString();
verEnd.Width = 224;
verEnd.Height = 22;
verEnd.Location = new Point(160, 55);
verEnd.DataBindings.Add(new Binding("Value", acqreports_testDataSet, "verification.VerEnded"));
verEnd.Value = verEndval;
//Create VerTime
TextBox verTime = new TextBox();
verTime.Name = "verTime" + i.ToString();
verTime.Width = 224;
verTime.Height = 22;
verTime.Location = new Point(160, 85);
verTime.Text = verTimeval;
//Create Ver Start label
Label lblVerStart = new Label();
lblVerStart.Name = lblVerStart + i.ToString();
lblVerStart.Text = "Ver Started: ";
lblVerStart.Location = new Point(5, 25);
//Create Ver End label
Label lblVerEnd = new Label();
lblVerEnd.Name = lblVerEnd + i.ToString();
lblVerEnd.Text = "Ver Ended: ";
lblVerEnd.Location = new Point(5, 55);
//Create Ver Time label
Label lblVerTime = new Label();
lblVerTime.Name = lblVerTime + i.ToString();
lblVerTime.Text = "Ver Time: ";
lblVerTime.Location = new Point(5, 85);
//Add created controls to groupBox
groupBox.Controls.Add(verStart);
groupBox.Controls.Add(verEnd);
groupBox.Controls.Add(verTime);
groupBox.Controls.Add(lblVerStart);
groupBox.Controls.Add(lblVerEnd);
groupBox.Controls.Add(lblVerTime);
tabControl2.TabPages[2].Controls.Add(groupBox);
}
Затем я хочу использовать DateTimePickers и VerTime.Text для обновления таблицы с каждым событием проверки.