在datagridview上显示表数据

时间:2014-03-12 09:10:13

标签: c# datagridview

我正在使用Windows应用程序并将数据从sqlite显示到datagriview但我无法理解为什么我的日期格式在显示期间会发生变化。

sqlite日期格式DateTime 2012-02-20 16:42:10.000

datagridview日期格式20/02/2012 16:42:10

我的代码

SQLiteConnection m_dbConnection;

m_dbConnection = new SQLiteConnection("Data source = F:/Explor/final test/WebMobility.db; Version=3;");

m_dbConnection.Open();

SQLiteCommand myCommand = new SQLiteCommand();
myCommand.Connection = m_dbConnection;


myCommand.CommandText = "select CompanyId,DateTime,description  from  VerbaliData";

DataTable data = new DataTable();
SQLiteDataAdapter myAdapter = new SQLiteDataAdapter(myCommand);

myAdapter.Fill(data);
dataGridView1.DataSource = data;
this.dataGridView1.Refresh();
if (dataGridView1.RowCount > 0)
{
    string value = "";
    DataGridViewRow dr = new DataGridViewRow();
    StreamWriter swOut = new StreamWriter("F:/Explor/final test/finaltest12.csv");

    //write header rows to csv
    for (int i = 0; i <= dataGridView1.Columns.Count - 1; i++)
    {
        if (i > 0)
        {
            swOut.Write(",");
        }
        swOut.Write(dataGridView1.Columns[i].HeaderText);
    }

    swOut.WriteLine();

    //write DataGridView rows to csv
    for (int j = 0; j <= dataGridView1.Rows.Count - 1; j++)
    {
        if (j > 0)
        {
            swOut.WriteLine();
        }

        dr = dataGridView1.Rows[j];

        for (int i = 0; i <= dataGridView1.Columns.Count - 1; i++)
        {
            if (i > 0)
            {
                swOut.Write(",");
            }

            value = dr.Cells[i].Value.ToString();
            //replace comma's with spaces
            value = value.Replace(',', ' ');
            //replace embedded newlines with spaces
            value = value.Replace(Environment.NewLine, " ");

            swOut.Write(value);
        }
    }
    swOut.Close();
}

m_dbConnection.Close();

2 个答案:

答案 0 :(得分:0)

SqlLite保存的日期时间格式有两件事称为通用格式,可在所有应用程序中访问。 这有助于我们从本地化问题中解脱出来。 sqlite日期格式DateTime 2012-02-20 16:42:10.000

DataGrid显示这是因为它提取你的系统格式,即DD / MM / YYYY,如果你需要以相同的格式显示它,你需要声明它是明确的。 例如Date.ToUniversalTime() datagridview日期格式20/02/2012 16:42:10

答案 1 :(得分:0)

数据库始终以yyy-MM-dd格式存储。 DatGrid中的日期会根据您的机器日期格式显示格式。

您可以通过以下示例看到这一点。查询您的数据库以获取如下所示的当前日期

select FORMAT(GETDATE(),'dd/MM/yyy');

结果为2014-03-12 14:50:45.450

您可以通过Format函数更改此内容。

select FORMAT(GETDATE(),'dd/MM/yyy');

如下所示更改您的查询可以解决问题。

select CompanyId, FORMAT(GETDATE(),'yyy-MM-dd hh:mm:ss'), description from  VerbaliData;