2014-11-18 7 views
0

У меня есть класс называется querys, а внутри него у меня есть функция, как код нижеошибки в данных для вставки в базу данных доступа

public void insertdata(int x1, string x2, string x3, int x4, string x5) 
    { 
     try 
     { 
      string insert = string.Format("insert into [customer] ([cust_id],[cust_arabic_name],[cust_english_name],[cust_mobile],[cust_address]) values ('{0}','{1}','{2}','{3}','{4}')",x1, x2, x3, x4, x5); 
      OleDbCommand cmd = new OleDbCommand(insert,mf.con); 
      cmd.ExecuteNonQuery(); 
      MessageBox.Show("new data added"); 
     } 
     catch (System.InvalidOperationException ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

и на моей форме имеет следующий код внутри кнопки

  query.insertdata(int.Parse(Id_TBox.Text + ""), A_Name_TBox.Text + "", E_Name_TBox.Text + "", int.Parse(Mobile_TBox.Text + ""), Address_TBox.Text + ""); 

Я изменил максимальную длину Id_TBox (9), а максимальная длина Mobile_TBox - (10).

сейчас, когда я пытаюсь вставить данные, отображается ошибка (значение было слишком большим или слишком малым для int32).

Я изменяю его на десятичный, но ошибка возвращается снова.

Любая помощь, пожалуйста,

+0

Только один вопрос: int.Parse (Id_TBox.Text + ""), Why + ""? – Koen

+0

для преобразования Id_TBox inupt в целое число и «», если кнопка пробела ввода данных по ошибке будет проигнорирована –

+0

Есть ли [cust_mobile] номер телефона? Если да, может ли он когда-либо быть больше, чем 2147483647? Это объясняет, почему он не вписывается в 'Int32'. Вы должны хранить телефонные номера в базе данных как 'string', а не' int'. –

ответ

1

Попробуйте изменить номер телефона тип данных для мобильных в строку в функции и VARCHAR (10) в базе данных. Не рекомендуется устанавливать его как числовую переменную. Затем попробуйте удалить «» из столбца «Идентификатор» во время ввода данных. После выполнения этих действий он может работать нормально

+0

, когда я меняю столбец в база данных от числа до строки, в которой она работает, но как я могу обязать пользователя вводить только цифры, потому что, если он ввел письмо в cust_mobile по ошибке, он не будет иметь смысл –

+1

, если вы разрабатываете веб-приложение с помощью asp.net, вы можете использовать fieldvalidators или вы можете использовать javascript для обеспечения типа ввода. В противном случае вы можете контролировать ввод пользователя с помощью TextBox, события KeyPress, чтобы игнорировать не числовые входы. –

Смежные вопросы