Рейтинг:
11
Richard MacCutchan
Вам нужно переместить тест валидности за пределы цикла, чтобы сообщение об успехе появлялось только в том случае, если все строки истинны.
bool chValidity = true; // assume all checks will succeed
for (int i = 1; i < rowCount; i++) // iterate all rows
{
DateTime d;
chValidity = DateTime.TryParseExact(
worksheet.Cells[i + 1, 1].Value.ToString(),
"MM/dd/yyyy h:mm:ss",
if (chValidity == false)
{
cell1.Text = worksheet.Cells[i + 1, 1].Value.ToString() + " " + worksheet.Cells[i + 1, 2].Value.ToString() + " " + worksheet.Cells[i + 1, 2].Value.ToString() + " Baris ke " + i;
row.Cells.Add(cell1);
myTable.Rows.Add(row);
File.AppendAllText("E:\\test.txt", label1.Text);
}
} // end of for loop
if (chValidity == true){ // all 5 rows are valid
label1.Text="Suskses";
}
[редактировать]
Удален дополнительный тест состояния в
for
заявление.
[/редактировать]
Member 14760154
теперь проблема в том ,что его разрывают и вставляют только первую ложную строку , следующая строка, которая была ложной, не вставляется в таблицу ,
Вы можете помочь мне ,решить эту проблему ?
Я хочу вот так
15/10/2020 ошибка в строке 2
16/10/2020 ошибка в строке 3
16/10/2020 ошибка в строке 6
и моя программа показывает это
15/10/2020 ошибка в строке 2
Richard MacCutchan
Затем просто удалите лишний тест в for
заявление.
Member 14760154
я попробовал это,это тоже правда ,
когда я удаляю "ch_validity==true" в операторе "for"
Richard MacCutchan
Значит ли это, что он работает или нет? Если нет, то вам нужно отредактировать свой вопрос и показать нам измененный код.
Member 14760154
для какой-то проблемы это работает ,но это вызывает другую проблему ,
защищенной проверки недействительным(объект отправителя, EventArgs в электронной)
{
если (FileUpload1.HasFile)
{
string[] arr = новая строка[15];
string filename = "Hr_Report_" + DateTime.Now.ToString("dddd_dd_mmmmm_yyyy") + ". xls";
FileUpload1.Сохранить как(temp_file + именем);
строка tempfile = temp_file + filename;
строка finalfile = final + "final.xls";
строка c = @tempfile;
строка b = @finalfile;
DataTable table = новая таблица данных();
FileInfo existingFile = new FileInfo(tempfile); //+ FileUpload1.FileName);
using (ExcelPackage package = new ExcelPackage(existingFile))
{
ExcelWorksheet worksheet = пакет.Рабочая тетрадь.Рабочие листы[1];
int colCount = рабочий лист.Размер.Конец.Колонки;
интервал количество строк = таблица.Размер.Конец.Строка;
стол.Столбцы.Добавить("emp_fullname", typeof(DateTime));
стол.Столбцы.Add("emp_nik", typeof(string));
стол.Столбцы.Add("Timer_Finger", typeof(string));
боол chValidity =истина;
для (тип int я = 1; я &л; Количество строк &амп;&амп; chValidity==правда; я++)
{
Датавремя д;
chValidity = Дата-Время.Метод tryparseexact(
рабочий лист.Ячейки[i + 1, 1].Значение.Метод toString(),
"ММ/ДД/гггг ч:мм:СС",
CultureInfo.Языка и региона существует,
DateTimeStyles.Никто,
из Д);
if (chValidity == false)
{
TableRow row = новый TableRow();
Tablecell в cell1 = новый tablecell в();
cell1.Текст = рабочий лист.Ячейки[i + 1, 1].Значение.ToString() + "" + рабочий лист.Ячейки[i + 1, 2].Значение.ToString() + "" + рабочий лист.Ячейки[i + 1, 2].Значение.ToString() + "Baris ke" + i;
ряд.Ячейки.Добавить(ячейка1);
myTable.Rows.Add(строка);
Файл.AppendAllText("E:\\test.txt", label1.Text);
}
}
if (chValidity == true)
{
этикетка 1.Текст = "сусксес";
}
}
}
еще
{
Ответ.Напишите("окно.alert('File Belum diupload')");
}
}
Richard MacCutchan
Вы не изменили оператор for, теперь он должен быть:
for (int i = 1; i < rowCount; i++) // iterate all the rows
Кроме того, вы не объяснили, какая еще проблема у вас есть.
Member 14760154
На самом деле моя проблема заключается в том ,что я хочу вставить расписание в свою базу данных с помощью excel ,потому что это займет много времени, если я использую форму для его вставки ,
но иногда я пишу неправильный формат datetime , и это делает ошибку ,
теперь я попытаюсь решить эту проблему , я проверю свои данные перед вставкой в базу данных,
Я хочу ,чтобы, когда у меня есть 1 строка ошибки и 4 не ошибка, все строки не вставлялись бы в базу данных ,
но мое текущее состояние после изменения таково ,что когда я строю ошибку ,ее не удалось вставить в базу данных, но еще 4 строки успешно вставлены в базу данных
Richard MacCutchan
У вас есть следующее:
if (chValidity == false)
{
TableRow row = new TableRow();
TableCell cell1 = new TableCell();
cell1.Text = worksheet.Cells[i + 1, 1].Value.ToString() + " " + worksheet.Cells[i + 1, 2].Value.ToString() + " " + worksheet.Cells[i + 1, 2].Value.ToString() + " Baris ke " + i;
row.Cells.Add(cell1);
myTable.Rows.Add(row);
File.AppendAllText("E:\\test.txt", label1.Text);
}
Таким образом, если проверка валидности ложна, вы добавляете строку. Правильно это или нет?
Member 14760154
Мне очень жаль ,но на самом деле я просто скопировал не тот код ,
я изменил код на (для int i=1;i
BillWoodruff
+5 за бесконечное терпение !
Richard MacCutchan
Спасибо, Билл. Иногда я просто хочу найти реальное рабочее решение для собственного удовлетворения.
BillWoodruff
и это, сэр, подарок "остальным из нас" !
Richard MacCutchan
Может быть, иногда ...