【问题标题】:DataGridView columns not showing same formatted date C#DataGridView 列不显示相同格式的日期 C#
【发布时间】:2018-11-28 13:55:15
【问题描述】:

我正在从 SQL Server 查询数据并在 Management Studio 中得到以下结果。

现在,当我在 DataTable 中获取相同的结果并将 DataTable 分配为 DataSourceDataSource 时,我正在下方视图。

Last Updated On 显示正确的 SQL 格式,但 Initiated On 显示不同的格式。

从 SQL 中检索数据的方法:

internal DataTable GetDGVData()
    {
        try
        {
            using (SqlConnection connection = new SqlConnection(_conStr))
            {
                var cmd = new SqlCommand("GetDGVData_SP", connection);
                cmd.CommandType = CommandType.StoredProcedure;
                connection.Open();
                var dr = cmd.ExecuteReader();
                var dt = new DataTable();
                dt.Load(dr);
                connection.Close();
                return dt;
            }
        }
        catch (Exception exception)
        {
            MessageBox.Show(exception.Message);
            return null;
        }
    }

DataSource 分配代码:

var data = _dbOprations.GetDGVData();
if (data != null)
{
 //Assign datatable to DataGridView
 dgvTool.DataSource = data;
 //Hide Id column as not needed for user.
 dgvTool.Columns[0].Visible = false;
 //Refresh the DataGridView
 dgvTool.Refresh();
}

我没有对 DataGridView 控件进行任何格式化。有人可以发现我正在做的错误。

【问题讨论】:

  • 我的猜测是您的“上次更新日期”日期存储为文本(可能是varchar
  • 检查过您的数据库,看看这些字段是否具有相同的数据类型(日期或字符串)?无论如何,您可以重新定义这些列的呈现格式。
  • @Rafalon 你是对的。 Last Updated On 的数据类型是 varchar,dateInitiated On
  • @Jimi 你是对的。我错过了数据类型。谢谢。
  • 如果您更改字段数据类型,请为所有选择日期。

标签: c# winforms datagridview


【解决方案1】:

Last Updated On 的数据类型是 varcharInitiated On 的数据类型是 date。这造成了这种差异。谢谢RafalonJimi

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 2015-05-15
    • 1970-01-01
    • 2012-06-18
    • 2011-05-11
    相关资源
    最近更新 更多