C# 使用Datetimepicker插入时间和日期
我正在用C代码构建一个应用程序。 这是一个向数据库插入值的简单代码。我已经成功地插入了这些值,但是当我在使用datetimepicker的时间列上进行检查时,它只会显示0000-00-00:00:00。所以我的问题是,如何只在数据库中插入时间和日期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
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。现在输入选择器中的时间和日期。谢谢您的时间先生!