2014-01-28 3 views
0

Я использую C# с Visual Studio 2010, используя Bindings и Oracle Datasource.Подключения адаптера таблицы не обновляются

Мой блок кода следующим образом

//This loads the information into the textbox 
     try 
     { 
      this.invoicePrimariesTableAdapter.FillByInvoiceID(this.nISSANDataset.InvoicePrimaries); 
     } 
     catch (System.Exception ex) 
     { 
      System.Windows.Forms.MessageBox.Show(ex.Message); 
     } 
     //This changes the contents of the textbox 
     int invoiceID = Convert.ToInt32(txtInvoiceNum.Text); 
     invoiceID += 1; 
     txtInvoiceNum.Text = Convert.ToString(invoiceID); 
     //This tries to update the Database, but fails 
     try 
     { 

      this.Validate(); 
      this.invoicePrimariesBindingSource.EndEdit(); 
      this.invoicePrimariesTableAdapter.Update(this.nISSANDataset.InvoicePrimaries);     
      MessageBox.Show("Update successful"); 
     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show("Hi" + ex); 
     } 

Я ищу, чтобы увеличить значение в базе данных на 1 каждый раз при загрузке формы. Это было то, что я хотел, но если есть лучший способ или способ сделать эту работу, я был бы очень доволен.

+0

Лучшим способом было бы изменить DataRow вместо пользовательского интерфейса. Значения в пользовательском интерфейсе должны быть изменены только через интерфейс и привязку. При изменении кода данные непосредственно в модели. – Ralf

+0

Вопрос был исправлен на моем конце. Спасибо за помощь, хотя! – user3215251

ответ

0

Это, оказалось, была моей ошибкой. Я забыл, что добавил еще один столбец в базу данных, но не обновил свой источник данных в своем проекте C#. Он решил обновить таблицу из 2 столбцов и вместо этого нашел таблицу с тремя столбцами и сломался.

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