簡體   English   中英

輸入的字符串格式不正確

[英]Input string was not in a correct format

我是Visual Studio 2010和MySQL的新手。 我正在創建一個可以添加員工的表單。 但是,當我單擊“添加”按鈕時,出現錯誤,提示“輸入字符串的格式不正確”。

這是屏幕截圖:

在此處輸入圖片說明

在此處輸入圖片說明

碼:

private void button_adduser_Click(object sender, EventArgs e)
    {
        string MyConString = "SERVER=localhost;" + "DATABASE=timekeeping;" + "UID=root;" + "PASSWORD=admin;";
        MySqlConnection connection = new MySqlConnection(MyConString);
        MySqlCommand command = connection.CreateCommand();
        command.Connection = connection;
        using (MySqlConnection conn = new MySqlConnection(MyConString))
        {
            connection.Open();
            using (MySqlCommand com = connection.CreateCommand())
            {
                command.CommandText = "insert into users(fname, mname, lname, position, contactnumber, emailadd, birthday, username, password) values(@fname, @mname, @lname, @position, @contactnumber, @emailadd, @birthday, @username, @password)";
                command.Parameters.Add(new MySqlParameter("@fname", SqlDbType.VarChar));
                command.Parameters.Add(new MySqlParameter("@mname", SqlDbType.VarChar));
                command.Parameters.Add(new MySqlParameter("@lname", SqlDbType.VarChar));
                command.Parameters.Add(new MySqlParameter("@position", SqlDbType.VarChar));
                command.Parameters.Add(new MySqlParameter("@contactnumber", SqlDbType.VarChar));
                command.Parameters.Add(new MySqlParameter("@emailadd", SqlDbType.VarChar));
                command.Parameters.Add(new MySqlParameter("@birthday", SqlDbType.DateTime));
                command.Parameters.Add(new MySqlParameter("@username", SqlDbType.VarChar));
                command.Parameters.Add(new MySqlParameter("@password", SqlDbType.VarChar));
                command.Parameters["@fname"].Value = addfname.Text;
                command.Parameters["@mname"].Value = addmname.Text;
                command.Parameters["@lname"].Value = addlname.Text;
                command.Parameters["@position"].Value = addposition.Text;
                command.Parameters["@contactnumber"].Value = addcontact.Text;
                command.Parameters["@emailadd"].Value = addemail.Text;
                command.Parameters["@birthday"].Value = addbday.Text;
                command.Parameters["@username"].Value = addusername.Text;
                command.Parameters["@password"].Value = addpassword.Text;
                command.ExecuteNonQuery();
            }
        }

    }

錯誤在這里:

command.Parameters["@birthday"].Value = addbday.Text;

addbday.Text不在日期時間字段中。

即使您確實將其聲明為日期時間:

command.Parameters.Add(new MySqlParameter("@birthday", SqlDbType.DateTime));

將有問題的行重寫為:

 command.Parameters["@birthday"].Value = Convert.ToDateTime(addbday.Text);

例如,您將“生日”聲明為日期時間命令。Parameters.Add(new MySqlParameter(“ @ birthday”,SqlDbType.DateTime));

但是,您的值將作為命令插入。Parameters[“ @ birthday”]。Value = addbday.Text; //不確定您的格式是否正確。

這就是為什么您有格式錯誤。

我將看一下這一行,因為該參數被聲明為日期時間。 確保它是預期的格式。

command.Parameters["@birthday"].Value = addbday.Text; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM