【发布时间】:2018-11-28 13:55:15
【问题描述】:
我正在从 SQL Server 查询数据并在 Management Studio 中得到以下结果。
现在,当我在 DataTable 中获取相同的结果并将 DataTable 分配为 DataSource 的 DataSource 时,我正在下方视图。
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,date是Initiated On -
@Jimi 你是对的。我错过了数据类型。谢谢。
-
如果您更改字段数据类型,请为所有选择日期。
标签: c# winforms datagridview