日期时间值不正确:“”表示第 1 行的“输入日期”列

本文关键字:日期 行的 输入 输入日期 时间 表示 不正确 | 更新日期: 2023-09-27 18:35:52

>我在我的wform中添加了一个日期时间选择器,该选择器应在用户选择数据库列"输入日期"时插入日期和时间,但我得到上述错误,任何帮助将不胜感激。

private void btnSubmitClients_Click_1(object sender, EventArgs e)
    {
       var connectionString = ConfigurationManager.ConnectionStrings["Pigen"].ConnectionString;
            connection = new MySqlConnection(connectionString);
            connection.Open();
        //     try
        {
            string CmdText = "INSERT INTO t_pi_Clients(ClientCode,ClientName,PostalAdd,Telephone,Fax,EntryDate,EmailAdd1,EmailAdd2,EmailAdd3,Website,TotalDeposit,AccountBal,ChargeRate)VALUES(@ClientCode, @ClientName, @PostalAdd, @Telephone, @EntryDate, @Fax, @EmailAdd1, @EmailAdd2, @EmailAdd3, @Website, @TotalDeposit, @AccountBal, @ChargeRate)";
            MySqlCommand cmd = new MySqlCommand(CmdText, connection);
            cmd.Parameters.AddWithValue("@ClientCode", txtboxClientCode.Text);
            cmd.Parameters.AddWithValue("@ClientName", txtboxClientName.Text);
            cmd.Parameters.AddWithValue("@PostalAdd", txtboxPostalAddress.Text);
            cmd.Parameters.AddWithValue("@Telephone", txtboxTelephone.Text);
            cmd.Parameters.AddWithValue("@Fax", txtboxFax.Text);
            cmd.Parameters.AddWithValue("@EmailAdd1", txtboxEmailAddress1.Text);
            cmd.Parameters.AddWithValue("@EmailAdd2", txtboxEmailAddress2.Text);
            cmd.Parameters.AddWithValue("@EmailAdd3", txtboxEmailAddress3.Text);
            cmd.Parameters.AddWithValue("@Website", txtboxWebsite.Text);
            cmd.Parameters.AddWithValue("@TotalDeposit", txtboxTotalDepo.Text);
            cmd.Parameters.AddWithValue("@AccountBal", txtboxAccountBal.Text);
            cmd.Parameters.AddWithValue("@ChargeRate", txtboxChargeRate.Text);
            cmd.Parameters.AddWithValue("@EntryDate", dateTimePicker1.Value.ToString("yyyy-MM-dd hh:mm:ss"));
            int result = cmd.ExecuteNonQuery();

日期时间值不正确:“”表示第 1 行的“输入日期”列

无需转换

试试这个

DateTime dt=new DateTime();
if(DateTime.TryParse(dateTimePicker1.Value.ToString(),out dt))
{
cmd.Parameters.AddWithValue("@EntryDate", dt);
}

停止将 ADD 与值一起使用

首先尝试将其放入DateTime,然后将值赋予parameter

这将帮助你....

 'YYYY-MM-DD HH:MI:SS'

将时间部分作为 24 小时制。(即作为 00 到 23 之间的值提供的小时数字。

MySQL提供了一个内置的函数STR_TO_DATE可以将各种格式的字符串转换为DATEDATETIME数据类型。

因此,作为替代方法,您还可以通过调用该函数来指定DATETIME的值,如下所示:

STR_TO_DATE('12/21/2012 1:13:58 PM','%m/%d/%Y %h:%i:%s %p')

因此,如果您的VALUES列表如下所示,则可以让MySQL在INSERT语句中为您进行转换:

...  cmd.Parameters.AddWithValue('@EntryDate', STR_TO_DATE(dateTimePicker1.Value,'%m/%d/%Y %h:%i:%s %p');

我做了彻底的代码检查,意识到我的插入语句带有列和值,例如"INSERT INTO t_pi_Clients(ClientCode,ClientName,PostalAdd(..)VALUEVALUES(@ClientCode, @ClientName, @PostalAdd(...)与数据库中的排列不匹配,所以我对我的插入语句进行了重新排列并使用cmd.Parameters.AddWithValue("@EntryDate", dateTimePicker1.Value);,它适用于我的数据类型 DATETIME。 坦克斯 @POHH 适合你的时间 你们摇滚