Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 问题:将日期选择器值保存到MySQL_C#_Xaml - Fatal编程技术网

C# 问题:将日期选择器值保存到MySQL

C# 问题:将日期选择器值保存到MySQL,c#,xaml,C#,Xaml,从DatePicker对象保存更新的值时遇到问题。当我去保存它时,我得到以下错误: “字段hex_srv_start必须是最大长度为'12'的字符串或数组类型。” 我对这个有点陌生,但我还没有弄清楚如何(或在哪里)应用转换 XAML: 更新:我需要格式化XAML中的DatePicker(绑定到VARCHAR(12)类型)。我被指向一个非常有用的网站,它向你展示了如何做到这一点——祝你好运 再次感谢。您需要将日期时间转换为字符串,以便数据库能够正确保存它。 您可能需要将abook类的hex\u s

从DatePicker对象保存更新的值时遇到问题。当我去保存它时,我得到以下错误:

“字段hex_srv_start必须是最大长度为'12'的字符串或数组类型。”

我对这个有点陌生,但我还没有弄清楚如何(或在哪里)应用转换

XAML:

更新:我需要格式化XAML中的DatePicker(绑定到VARCHAR(12)类型)。我被指向一个非常有用的网站,它向你展示了如何做到这一点——祝你好运


再次感谢。

您需要将日期时间转换为字符串,以便数据库能够正确保存它。 您可能需要将
abook
类的
hex\u srv\u start
属性更改为字符串

可使用以下方法进行转换:

mvm.hex_srv_start.ToString("yyyy/MM/dd");

如果您需要更多关于日期和时间格式的帮助,这是一个非常全面的指南

您的数据库模式是什么?似乎您正试图将日期时间保存到VARCHAR(12)或类似的东西中……您是对的-表本身的字段为VARCHAR(12),而egw_addressbook.cs给我的字符串是公共字符串hex_srv_start{get;set;}。因此,我想我需要某种方法将日期选择器转换为正确的格式,即“yyyy/MM/dd”-但我不知道如何做到这一点(或者说,如果是这样做的话)。谢谢你的帮助。我试过了,但在错误列表中收到了一条消息,“参数1:无法从“string”转换为下面的“System.IFormatProvider”,它说,“与“string.ToString(System.IFormatProvider)”匹配的最佳重载方法有一些无效参数。这是因为您的
十六进制srv\u start
已经是一个字符串。它在运行时有值吗?是的。如果我只是简单地更改保存期间失败的年份,那么您的WPF绑定可能是错误的。当您更改日期选择器中的值时,
mvm.hex\u serv\u start
的值是否也会更改?这是一个非常基本的测试平台。我创建了一个新项目,添加了一个新的ADO.NET实体数据模型类,添加了一个表(以及上面的XAML),再加上C#代码来填充数据库。我现在将更新问题以显示这一点。谢谢你的帮助。
var abook = db.egw_addressbook.Local.FirstOrDefault(o => o.contact_id == 16875);
abook.org_name = mvm.org_name;
abook.hex_srv_start = mvm.hex_srv_start;
db.SaveChanges();
MessageBox.Show("Saved");
mvm.hex_srv_start.ToString("yyyy/MM/dd");