DataTimePicker и флажок вставки в базу данных - ошибка синтаксиса SQL - PullRequest
0 голосов
/ 07 февраля 2019

Я программирую на C # .NET и MySQL.Моя база данных называется "projekt1".Я создал новую форму InsertStatus.cs, которая содержит: 3 текстовых поля, 1 numericUpDown, 2 dataTimePickers и 2 флажка.

У меня есть связь с локальной базой данных.Я написал SQL с INSERT INTO правильно, но он не мог написать эту дату и время, чтобы сделать эту базу данных.И показывает, что это «синтаксис ошибки SQL».Я пытался с .Value.ToString () и .Value , и это не сработало.Я хотел бы изменить customFormat в dataTimePickers на DD-MM-YYYY ЧЧ: ММ (я имею в виду в настройках на нужном сайте, а не в коде), но я не уверен, что он может работать.Ниже приведен следующий код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace KontrolaBazaDanych

{
    public partial class InsertStatus : Form
    {
        public InsertStatus()
        {
            InitializeComponent();
        }


    private void button2_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MySqlConnection connection = new MySqlConnection("datasource=localhost;port=3306;username=root;password=");
        string InsertQuery = "INSERT INTO project1.status_order(ID_ORDER, ID_WORKER, ID_MODULE, AMOUNT_OF_PRODUCTS, DATE_OF_START, DATE_OF_END, ORDER_DONE, ORDER_STARTED) VALUES('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + numericUpDown1.Value + "','" + dateTimePicker1.Value.ToString() + "','" + dateTimePicker2.Value.ToString() + "','" + checkBox1.ToString() + "','" + checkBox2.ToString() + "')'";
        connection.Open();
        MySqlCommand command = new MySqlCommand(InsertQuery, connection);

            if (command.ExecuteNonQuery() == 1)
            {
                MessageBox.Show("DATA IS ADDED.");
            }
            else
            {
                MessageBox.Show("ERROR.");
            }
        connection.Close();
    }

// SQL COLUMNS IN таблица status_order:

ID_ORDER INT,
ID_WORKER INT,
ID_MODULE INT, 
AMOUNT_OF_PRODUCTS INT, 
DATE_OF_START DATETIME, 
DATE_OF_END DATETIME, 
ORDER_DONE BOOLEAN, 
ORDER_STARTED BOOLEAN;

Я понятия не имею, что мне делать.Может кто-нибудь объяснить, пожалуйста, как я могу изменить.Спасибо за любую помощь или совет.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Возможно, причина в следующем:

dateTimePicker1.Value.ToString()

Вы конвертируете дату в строку, даже если в вашей базе данных есть столбцы даты и времени

DATE_OF_START DATETIME, 
DATE_OF_END DATETIME,
0 голосов
/ 07 февраля 2019

Вы должны сделать это в коде

dateTimePicker1.Value.ToString("dd-MM-YYYY hh:mm")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...