C# 使用Datetimepicker插入时间和日期

C# 使用Datetimepicker插入时间和日期,c#,mysql,C#,Mysql,我正在用C代码构建一个应用程序。 这是一个向数据库插入值的简单代码。我已经成功地插入了这些值,但是当我在使用datetimepicker的时间列上进行检查时,它只会显示0000-00-00:00:00。所以我的问题是,如何只在数据库中插入时间和日期 private void button1_Click(object sender, EventArgs e) { string constring = "Database=fillupform;Data Source=loc

我正在用C代码构建一个应用程序。 这是一个向数据库插入值的简单代码。我已经成功地插入了这些值,但是当我在使用datetimepicker的时间列上进行检查时,它只会显示0000-00-00:00:00。所以我的问题是,如何只在数据库中插入时间和日期

 private void button1_Click(object sender, EventArgs e)
    {
        string constring = "Database=fillupform;Data Source=localhost;User Id=root;Password=''";

        timeanddate.Format = DateTimePickerFormat.Custom;
        timeanddate.CustomFormat = "MM dd yyyy hh mm ss";  timeanddate.Value.ToShortDateString();
        string Query = "Insert into fillupform.fillupform (filename,instructor,time,score) values('" + this.filename.Text + "','" + this.instructor.Text + "','" + this.timeanddate.Text + "','" + this.score.Text + "');";
        MySqlConnection conDataBase = new MySqlConnection(constring);
        MySqlCommand cmdDatabase = new MySqlCommand(Query, conDataBase);
        MySqlDataReader myReader;
        try
        {
            conDataBase.Open();
            myReader = cmdDatabase.ExecuteReader();
                MessageBox.Show("Saved");
            while (myReader.Read())
            {

            }
        }
        catch (Exception ex) 
        {
            MessageBox.Show(ex.Message);
        }
    }

无需使用
MySqlDataReader

string constring = "Database=fillupform;Data Source=localhost;User Id=root;Password=''";
string Query = "INSERT INTO fillupform.fillupform (filename,instructor,time,score) VALUES (@filename,@instructor,@time, @score);";
using (MySqlConnection conDataBase = new MySqlConnection(constring))
{
    using (MySqlCommand cmdDatabase = new MySqlCommand(Query, conDataBase))
    {
        cmdDatabase.CommandType = CommandType.Text;
        cmdDatabase.Parameters.AddWithValue("@filename", this.filename.Text);
        cmdDatabase.Parameters.AddWithValue("@instructor", this.instructor.Text);
        cmdDatabase.Parameters.AddWithValue("@time", this.timeanddate.Text);
        cmdDatabase.Parameters.AddWithValue("@score", this.score.Text);
        try
        {
            cmdDatabase.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

看在上帝的份上,请使用参数化SQL,否则您将面临SQL注入攻击@劳埃德,我开始做一个简单的,一旦我解决了这个问题,我就开始做安全方面的工作。谢谢你的提示,先生。这也将有助于解决这个问题,因为你不必担心日期/时间字符串的格式。谢谢你检查这个,先生。我尝试了您的解决方案,但在这一行中出现了一个错误,即“no重载方法”cmdDatabase.endexecutenquery();'接受0个参数。您能帮我吗,先生?@helpmeplease-updated.ExecuteNonQuery返回插入的行数我已经替换了您更新并添加的conDataBase。打开它,现在它可以工作了,但我仍然看不到插入数据库的日期和时间,仍然给我0000-00-00:00:00设置断点并查看。timeanddate.Text的值-是否存在有效值?为了解决此问题,我只需将数据库中时间列的类型更改为varchar。现在输入选择器中的时间和日期。谢谢您的时间先生!