Разница между двумя столбцами с датой и временем, импортированными из файла CSV - PullRequest
0 голосов
/ 26 сентября 2019

Мне нужно импортировать файл CSV в таблицу SQL Server.
В CSV есть 8 столбцов, и 2 из них являются значениями даты и времени.

В моей таблице SQL есть столбец, в котором хранитсяразница между двумя столбцами файла CSV.

Я не могу проверить, пуста ли ячейка или нет.

Мой код следующий:

 protected void btnImport_Click(object sender, EventArgs e)
    {
        string csvPath = Server.MapPath("~/Files/") + Path.GetFileName(FileUpload1.PostedFile.FileName);
        FileUpload1.SaveAs(csvPath);

        DataTable dt = new DataTable();
        dt.Columns.AddRange(new DataColumn[8] { new DataColumn("basid", typeof(string)),
            new DataColumn("EmployeeName", typeof(string)),
            new DataColumn("Designation",typeof(string)),
            new DataColumn("OfficeLocation",typeof(string)),
            new DataColumn("Division",typeof(string)),
            new DataColumn("Intime",typeof(DateTime)),
            new DataColumn("Outtime",typeof(DateTime)),
            new DataColumn("timedifference",typeof(DateTime))

        });
        string csvData = File.ReadAllText(csvPath);
        foreach (string row in csvData.Split('\n'))
        {
            if (!string.IsNullOrEmpty(row))
            {
                dt.Rows.Add();
                int i = 0;
                foreach (string cell in row.Split(','))
                {
                    if (i == 7)
                    {
                        dt.Rows[dt.Rows.Count - 1][i] = ((DateTime)(dt.Rows[dt.Rows.Count - 1][i - 1]) - (DateTime)(dt.Rows[dt.Rows.Count - 1][i - 2]));
                    }
                    else {
                        dt.Rows[dt.Rows.Count - 1][i] = cell;
                    }

                    i++;
                }
            }
        }

        string consString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
        using (SqlConnection con = new SqlConnection(consString))
        {
            using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con))
            {
                //Set the database table name.
                sqlBulkCopy.DestinationTableName = "dbo.basids";
                con.Open();
                sqlBulkCopy.WriteToServer(dt);
                con.Close();
            }
        }

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...