Входная строка была не в правильном формате - PullRequest
3 голосов
/ 27 июня 2011

Я новичок в Visual Studio 2010 и MySQL. Я создаю форму, где я могу добавить сотрудников. Однако, когда я нажимаю кнопку «Добавить», я получаю сообщение об ошибке «Введенная строка имеет неправильный формат».

Это скриншоты:

enter image description here

enter image description here

Код:

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();
            }
        }

    }

Ответы [ 3 ]

3 голосов
/ 27 июня 2011

Ошибка здесь:

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

addbday.Text находится не в поле даты и времени.

Даже если вы объявили его датой-временем:

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

Переписать ошибочную строку на:

 command.Parameters["@birthday"].Value = Convert.ToDateTime(addbday.Text);
0 голосов
/ 27 июня 2011

Я бы посмотрел на эту строку, так как параметр объявлен как datetime.Убедитесь, что он в ожидаемом формате.

command.Parameters["@birthday"].Value = addbday.Text; 
0 голосов
/ 27 июня 2011

Например, вы объявили свой «день рождения» как команду datetime.Parameters.Add (new MySqlParameter («@ birthday», SqlDbType.DateTime));

, но ваше значение вставляется как команда.Параметры ["@ birthday"]. Value = addbday.Text;// что я не уверен, что вы в правильном формате или нет.

Вот почему у вас ошибка формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...