c# - 数据库中的文本框到日期时间
问题描述
我试图从一个文本框中获取一个 DateTime,它已经是 MySql DateTime 的格式。DB 中的列也是 DateTime 格式。
但是,当我按下按钮将日期保存在数据库中时,整行都会被清空。
我在数据库中尝试了不同的格式和数据类型,但没有任何效果
private void button4_Click(object sender, EventArgs e)
{
MySqlConnection conn = DBUtils.GetDBConnection();
conn.Open();
string startzeit = textBoxstartzeit.Text.ToString();
DateTime start = DateTime.Parse(startzeit);
string stopzeit = textBoxstopzeit.Text.ToString();
DateTime stop = DateTime.Parse(stopzeit);
string pstartzeit = textBoxstopzeit.Text.ToString();
DateTime pstart = DateTime.Parse(pstartzeit);
string pstopzeit = textBoxstopzeit.Text.ToString();
DateTime pstop = DateTime.Parse(pstopzeit);
MySqlCommand cmdnew = conn.CreateCommand();
cmdnew.CommandType = CommandType.Text;
cmdnew.CommandText = "UPDATE arbeitszeiten SET astart = '" + start + "', astop = '" + stop + "', pstart = '" + pstart + "', pstop = '" + pstop + "' WHERE id = '" + dataGridView.CurrentCell.Value + "'";
cmdnew.ExecuteNonQuery();
conn.Close();
}
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
MySqlConnection conn = DBUtils.GetDBConnection();
conn.Open();
MySqlCommand feedstartzeit = conn.CreateCommand();
feedstartzeit.CommandText = "SELECT astart FROM arbeitszeiten WHERE id = '" + dataGridView.CurrentCell.Value + "'";
DateTime start = Convert.ToDateTime(feedstartzeit.ExecuteScalar());
textBoxstartzeit.Text = start.ToString("yyyy-MM-dd HH:mm:ss");
MySqlCommand feedstopzeit = conn.CreateCommand();
feedstopzeit.CommandText = "SELECT astop FROM arbeitszeiten WHERE id = '" + dataGridView.CurrentCell.Value + "'";
DateTime stop = Convert.ToDateTime(feedstopzeit.ExecuteScalar());
textBoxstopzeit.Text = stop.ToString("yyyy-MM-dd HH:mm:ss");
MySqlCommand feedstartpause = conn.CreateCommand();
feedstartpause.CommandText = "SELECT pstart FROM arbeitszeiten WHERE id = '" + dataGridView.CurrentCell.Value + "'";
DateTime startpause = Convert.ToDateTime(feedstartpause.ExecuteScalar());
textBoxstartpause.Text = startpause.ToString("yyyy-MM-dd HH:mm:ss");
MySqlCommand feedstoppause = conn.CreateCommand();
feedstoppause.CommandText = "SELECT pstop FROM arbeitszeiten WHERE id = '" + dataGridView.CurrentCell.Value + "'";
DateTime stoppause = Convert.ToDateTime(feedstoppause.ExecuteScalar());
textBoxstoppause.Text = stoppause.ToString("yyyy-MM-dd HH:mm:ss");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Bitte ID auswählen", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Button4 是上传新数据,dataGridView 部分使用预先格式化的日期时间填充文本框,稍后由 button4 上传
解决方案
你的日期时间格式应该是你的服务器日期时间格式,如果你想使用日期时间那么你应该使用日期时间选择器,这样你就不需要转换成日期时间。
推荐阅读
- c# - 我等不及任务完成
- json - 从 API 自动检索的 Nuxt 内容和 JSON 文件
- javascript - ReactJs刷新页面根据window.location.pathname更新链接活动状态
- python - 在使用 python 的 bash 脚本中从 JSON 响应中检索值时出错
- algorithm - 从凹多边形生成三角形网格的高效算法
- c++ - 以下代码的复杂度是多少?和重载函数
- scala - 无法弄清楚scala compose函数中的语法
- android - @react-native-community/google-signin 独立应用程序不起作用
- cmd - 根据特定条件将文件移动到不同的路径
- html - 文本重叠 CSS 样式