Member 12314309 Ответов: 1

Я получаю ошибку ввода строки не в правильном формате.


Когда я импортировал данные в таблицу sql ,то получал эту строку ввода ошибки не в правильном формате в этой строке моего кодирования

DateTime Date = new DateTime(Convert.ToInt32(dateValue.Substring(0, 4)), Convert.ToInt32(dateValue.Substring(4, 2)), Convert.ToInt32(dateValue.Substring(6, 2)));


Что я уже пробовал:

protected void ReadDat(object sender, EventArgs e)
        {
              
            DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[] {
        new DataColumn("EmployeeCode",typeof(int)),
        new DataColumn("Date",typeof(DateTime)),
        new DataColumn("Time",typeof(TimeSpan)),
        new DataColumn("Status",typeof(string)),
        new DataColumn("MId",typeof(int)) });
    string[] lines = File.ReadAllLines(Server.MapPath(FileUpload1.PostedFile.FileName));  
    for (int i = 0; i < lines.Length; i++)
       
    {
        for (int j = 0; j < lines[i].Split(' ').Length; j++)
        {
            
            string dateValue = lines[i].Split(' ')[j].Substring(0, 7);
            DateTime Date = new DateTime(Convert.ToInt32(dateValue.Substring(0, 4)), Convert.ToInt32(dateValue.Substring(4, 2)), Convert.ToInt32(dateValue.Substring(6, 2)));
            string time = lines[i].Split(' ')[j].Substring(8, 4);
            TimeSpan Times = new TimeSpan(Convert.ToInt32(time.Substring(0, 2)), Convert.ToInt32(time.Substring(2, 2)), 0);
            string INOUT = lines[i].Split(' ')[j].Substring(12, 4);
            Int32 empcode = Convert.ToInt32(lines[i].Split(' ')[j].Substring(16, 7));
            int MID = Convert.ToInt32(lines[i].Split(' ')[j].Substring(23, 2));
            dt.Rows.Add(empcode, Date, Times, INOUT, MID);

            //Insert(empcode, Dates, Times, INOUT, MID);
        }
    }
    gvEmployees.DataSource = dt;
    gvEmployees.DataBind();
}
        }
    }

1 Ответов

Рейтинг:
5

Richard MacCutchan

Тогда одна из этих подстрок не была числом. Сделайте свою жизнь проще и используйте один из правильных методов синтаксического анализа из Датавремя Структуры (Система) | Майкрософт Документы[^]. Или еще лучше использовать Календарь Класса (Система.Окна.Элементы Управления) | Microsoft Docs[^] так что вы знаете, что получите как действительный вход.

Я вижу, что это уже было предложено вам четыре дня назад в https://www.codeproject.com/Questions/1268102/String-was-not-recognized-as-a-valid-datetime[^]


Richard Deeming

Вам удалось опубликовать это решение дважды. Хомячья икота? :)

Richard MacCutchan

Нет, небрежность. :(