Исключение переполнения в OLEDB - PullRequest
0 голосов
/ 05 декабря 2011

Я получаю сообщение об ошибке при попытке вставить идентификатор пользователя моего клиента в базу данных ms access.

Ошибка, которую я получаю - переполнение.

когда я пытаюсь вставить его, получаю вышеуказанную ошибку.

Я использую этот код.

        OleDbCommand cmd = new OleDbCommand("insert into UserInfo " + "([firstname], [lastname], [gender], [occupation], [expirydate], [UserId], [phoneno]) " + " values('" + txt_FirstName.Text + "','" + txt_LastName.Text + "','" + cmb_Gender.Text + "','" + cmb_Occupation.Text + "','" + txt_expiryDate.Text + "','" + txt_HardDiskId.Text + "','" + txt_PhoneNo.Text +  "');", con);
        OleDbCommand cmd1 = new OleDbCommand("select * from UserInfo where (HardDiskId='" + txt_HardDiskId.Text + "')", con);
        int temp = 0;
        try
        {
            con.Open();
            string count = (string)cmd1.ExecuteScalar();
            if ((count == "") || (count == null))
            {
                temp = cmd.ExecuteNonQuery();
                if (temp > 0)
                {
                    MessageBox.Show("User ID of " + txt_FirstName.Text + " " + txt_LastName.Text + " has been added");
                }
                else
                {
                    MessageBox.Show("Record not added");
                }
            }
            else
            {
                MessageBox.Show("User ID of " + txt_FirstName.Text + " already exists. Try another user ID.");
            }
        }

1 Ответ

1 голос
/ 05 декабря 2011

Помимо того, что вы открыты для SQL-инъекций (которые вы должны параметризовать для своей OleDbCommand), первая мысль о проблеме заключается в том, что вы пытаетесь сохранить данные.У любого из текстовых полей есть специальные символы или апостроф в имени, которые в противном случае могли бы прервать ваши встроенные записи .... '"+ nextField +"' ... "и сбросить баланс.

Другой... не знаю, является ли анализатор разборчивым или нет ... но пробел после значений, до открытия парен .... "values ​​(" to "values ​​(".

третий и болееВероятно, проблема связана с датой истечения срока действия. Если это поле даты, и вы пытаетесь ввести его как текст, возможно, сбой при преобразовании типов данных.

...