Вставка значений текстового поля для доступа к базе данных - PullRequest
0 голосов
/ 28 апреля 2010

Теперь я получаю проблему в операторе try (int count = insert .......). Компилятор говорит (когда я нажимаю кнопку в форме, чтобы сохранить значения в текстовых полях), что он не смог преобразовать значение параметра из String в Int32. код:

private void button1_Click (отправитель объекта, EventArgs e) {

       string conString = "Provider=Microsoft.Jet.OLEDB.4.0;"
     + "Data Source=C:\\Users\\Simon\\Desktop\\save.mdb";

        OleDbConnection empConnection = new OleDbConnection(conString);


        string insertStatement = "INSERT INTO obroki_save "
                             + "([ID_uporabnika],[datum],[ID_zivila],[skupaj_kalorij]) "
                             + "VALUES (@ID_uporabnika,@datum,@ID_zivila,@skupaj_kalorij)";

        OleDbCommand insertCommand = new OleDbCommand(insertStatement, empConnection);

        insertCommand.Parameters.Add("@ID_uporabnika", OleDbType.Integer).Value = users.iDTextBox.Text;
        insertCommand.Parameters.Add("@datum", OleDbType.Date).Value = DateTime.Now;
        insertCommand.Parameters.Add("@ID_zivila", OleDbType.Integer).Value = iDTextBox.Text;
        insertCommand.Parameters.Add("@skupaj_kalorij", OleDbType.Integer).Value = textBox1.Text;
        empConnection.Open();

        try
        {
           int count = insertCommand.ExecuteNonQuery();
        }
        catch (OleDbException ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            empConnection.Close();
            textBox1.Clear();
            textBox2.Clear();
            textBox3.Clear();
            textBox4.Clear();
            textBox5.Clear();
        }
    }

Ответы [ 2 ]

1 голос
/ 28 апреля 2010
insertCommand.Parameters.Add("@datum", OleDbType.Char).Value = DateTime.Now;

Вы вводите дату как тип данных Char, что выглядит неправильно.

0 голосов
/ 05 октября 2017

Вам необходимо преобразовать ваши типы данных: textbox.value содержит строку, а для преобразования вы можете использовать int.Parse.

    insertCommand.Parameters.Add("@ID_zivila", OleDbType.Integer).Value = int.Parse(iDTextBox.Text);
    insertCommand.Parameters.Add("@skupaj_kalorij", OleDbType.Integer).Value = int.Parse(textBox1.Text);
...