文本框到数据库中的日期时间

我试图从文本框中获取日期时间,它已经准备好了 MySql 日期时间的格式。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");


    }

    catch (Exception ex)

    {

        MessageBox.Show(ex.Message, "Bitte ID auswählen", MessageBoxButtons.OK, MessageBoxIcon.Error);

    }

}


Button4 是上传新数据,dataGridView 部分用预先格式化的日期时间填充文本框,稍后由 Button4 上传


九州编程
浏览 187回答 2
2回答

海绵宝宝撒

您的日期时间格式应该是您的服务器日期时间格式,如果您想使用日期时间,那么您应该使用日期时间选择器,这样您就不需要转换为日期时间。

天涯尽头无女友

好吧,Jon Skeet 建议的参数化 sql 请求解决了问题。
打开App,查看更多内容
随时随地看视频慕课网APP