[C#]Wyświetlanie czasu w DataGridView


(eureka 170) #1

Witam, napisałem program, który zapisuje dane z pliku "plik.csv", zapisuje do bazy danych sql, a następnie w datagridview te dane są wyświetlane.

Jednak w kolumnie trzeciej, gdzie w oryginale( w plik.csv) podana jest data w formacie rok-miesiąc-dzień godzina-minuta-sekunda, czyli np. 6:55:57, to w DataGridView wyświetla się 6:56. Zaokrągla on więc te godziny mimo że tego nie chcę. Można zrobić to tak, by się wyświetlało tak jak ma być? rok-miesiąc-dzień godzina-minuta-sekunda? W bazie danych sql jest ok.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

using System.IO;


namespace Program

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        public void Fill(string cmd)

        {

            dataGridView1.DataSource = null;

            DataTable dt = new DataTable();

            SqlConnection conn = GetConnection();

            SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand(cmd, conn));

            dataAdapter.Fill(dt);

            dataGridView1.DataSource = dt;


        }

        public SqlConnection GetConnection()

        {

            return new SqlConnection("Data Source = EUREKA-PC; Initial Catalog = Fabryka; trusted_connection = yes");

        }

        public int ExecuteNonQuery(string sql)

        {

            SqlConnection conn = null;

            SqlCommand cmd = null;


            try

            {

                conn = GetConnection();

                cmd = new SqlCommand(sql, conn);


                conn.Open();

                return cmd.ExecuteNonQuery();

            }

            catch (Exception ex)

            {

                throw ex;

            }

            finally

            {

                if (conn != null && conn.State == ConnectionState.Open)

                    conn.Close();

            }

        }

        private void Form1_Load(object sender, EventArgs e)

        {


        }


        private void button1_Click(object sender, EventArgs e)

        {

            int a = 0;

            StreamReader sr = new StreamReader("plik.CSV");

            string ciag = sr.ReadToEnd();

            ciag = ciag.Replace(',', '.');

            string[] tab = ciag.Split('\n');

            string[] tab2;

            a = tab.Length;


            for (int i = 0; i < a; i++)

            {

                tab2 = tab[i].Split(';');

                if (tab2[0] == "\r")

                {

                    break;

                }


                ExecuteNonQuery(String.Format("INSERT into Dane (Numer1, Numer2, Data, Rejestracja, [Waga towaru], Brutto, Opłata, [Kod towaru], Nazwa, Rozładunek) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')", tab2[0], tab2[1], tab2[2], tab2[3], tab2[4], tab2[5], tab2[6], tab2[7], tab2[8], tab2[9]));


            }

            Fill("SELECT * FROM Dane");

        }

    }

}

(Grzelix) #2
dataGridView1.Columns[2].DefaultCellStyle.Format = "HH: mm: ss";

pisane z palce wieć może jakaś literówka ale idea jest przekazana.