【发布时间】:2020-07-02 09:28:16
【问题描述】:
我在 WPF 中使用SqlConnection、MySqlConnection 和OracleConnection 来获取数据库中表的内容。
当我尝试从表中获取输出时,一切正常。但是,如果任何会话属性具有日期类型,它将自动从 '2020-02-20' 重新格式化为 '20/02/2020 12:00:00 AM',我需要该日期保持原样并且不在所有三种类型的数据库中格式化。如何防止它自动格式化?
也有可能是其他类型,但我没有注意到。
在命令行中,它会正确返回插入表中的日期值。
在 SQL Server 中,我得到这样的数据:
DataTable dt = new DataTable();
using (cmd = new SqlCommand(query, conn))
{
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
}
dataGrid.DataContext = dt;
其中query 是类似SELECT * FROM STUDENT 的字符串,而dataGrid 是这样在XAML 中定义的
<DataGrid ItemsSource="{Binding}" x:Name="dataGrid" IsReadOnly="True"/>
已编辑:当我将数据加载到某个数组或列表时,它会返回格式为:20.02.2020 0:00:00 的日期,这也是错误的。
谢谢
【问题讨论】:
-
问题不在于数据库,而在于数据网格的格式。请参阅:stackoverflow.com/questions/7978249/…
-
@jdweng 你确定吗?因为当我将数据加载到某个 Array 或 List 时,它也是如此。
-
您如何查看数据? DateTime 是以 UTF 存储和传输的数字。用于显示 DateTime 的工具使用机器的文化(时区和格式)将数字转换为字符串。因此,您只是在查看从数字转换而来的字符串。不是存储的数字。
-
当列类型为 Date 使用 To.String("yyyy-MM-dd") 时,我只需要重新格式化它。这实际上不是我想要的,但它确实有效。谢谢
标签: c# sql-server wpf formatting