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