【问题标题】:MySQL data formatting with c# (date) and DateTimePicker使用 c# (date) 和 DateTimePicker 格式化 MySQL 数据
【发布时间】:2010-11-19 19:41:44
【问题描述】:

我有一个与远程数据库交互的 Windows 窗体应用程序。数据库包含 2 个表。

用户可以在 MaskedTextBox 中输入日期,然后通过单击按钮并发出声明来更新记录。然而,由于 MySQL 日期列采用 YYYY-MM-DD 格式,因此使用 maskedtextbox 很烦人。因此,用户必须在蒙版文本框中输入例如 2010-11-15 才能使其工作(这有效,但输入这种格式并不那么直观)。我想改用 DateTimePicker,但由于此控件“文本”属性提供格式 DD-MM-YYYY,所以当我转换为字符串时,它看起来像 15-11-2010。 MySQL 显然没有正确处理这个。

处理此问题的最佳方法是什么,我应该从 Datetimepicker.text 中解析 3 组数字(日、月、年)吗?或者有没有办法改变MySQL日期的实际格式?或者我可以编辑 SQL 语句以便更改返回日期的格式吗?

这是我正在使用的 sql 语句,以防万一:

commandinsert.CommandText = "insert into jobs (id,date) values ('" + comboBox1.Text + "','" + maskedTextBox1.Text + "')";

提前致谢。

【问题讨论】:

  • 你有一个 SQL 注入漏洞。

标签: c# sql mysql database


【解决方案1】:

您应该使用参数传递文本。
然后可以直接将 DateTimePicker 的SelectedDate 属性作为参数传递,MySQL 客户端会发送正确的数据。

这也将防止 SQL 注入攻击。

欲了解更多信息,请参阅here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多