2015-04-21 6 views
0

У меня есть datagridview, который не будет обновляться при нажатии кнопки.Обновление базы данных доступа

Он отображает содержимое таблицы базы данных доступа.

код кнопки:

private void updatebutton_Click(object sender, EventArgs e) 
    { 
     DialogResult dr = MessageBox.Show("Are you sure you want to update the stock level?", "Message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information); 
     if (dr == DialogResult.Yes) 
     { 
      this.hPTableAdapter.Update(inkDataSet.HP); 
      inkGridView.Refresh(); 
      MessageBox.Show("Record Updated"); 
     } 
    } 

И строка для обновления в hPTableAdapter:

UPDATE HP 
SET Black = ?, Cyan = ?, Magenta = ?, Yellow = ? 

не показаны ошибки, как представляется, не работать до закрытия приложения и перезапуска в Visual Studio 2015.

Полный код:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Ink 
{ 
    public partial class inkForm : Form 
    { 

     public inkForm() 
     { 
      InitializeComponent(); 
     } 

     private void searchbutton_Click(object sender, EventArgs e) 
     { 
      int itemrow = -1; 
      String searchValue = searchtextBox.Text.ToUpper(); 

      if (searchValue != null && searchValue != "") 
      { 
       foreach (DataGridViewRow row in inkGridView.Rows) 
       { 
        if (row.Cells[1].Value.ToString().Equals(searchValue)) 
        { 
         itemrow = row.Index; 
         break; 
        } 
        else if (row.Cells[0].Value.ToString().Contains(searchValue) && itemrow == -1) 
        { 
         itemrow = row.Index; 
        } 
       } 
       if (itemrow == -1) 
       { 
        searchtextBox.BackColor = Color.Red; 
       } 
       else 
       { 
        searchtextBox.BackColor = Color.White; 
        inkGridView.Rows[itemrow].Selected = true; 
        inkGridView.FirstDisplayedScrollingRowIndex = itemrow; 
       } 
      } 
     } 

     private void inkForm_Load(object sender, EventArgs e) 
     { 
      this.hPTableAdapter.Fill(this.inkDataSet.HP); 

     } 

     private void updatebutton_Click(object sender, EventArgs e) 
     { 
      DialogResult dr = MessageBox.Show("Are you sure you want to update the stock level?", "Message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information); 
      if (dr == DialogResult.Yes) 
      { 
       this.hPTableAdapter.Update(inkDataSet.HP); 
       inkGridView.Refresh(); 
       MessageBox.Show("Record Updated"); 
      } 
     } 

     private void inkGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) 
     { 

     } 
    } 
} 
+1

Что происходит? вы получаете сообщение об ошибке? Записывает ли журнал базы данных ошибку? Что происходит? –

+0

Просто обновите, он просматривает всплывающие окна как обычно, никаких ошибок не видно. –

+1

Что значит «кажется, работает», а потом нет? Кроме того, вы можете показать нам весь код? Вам не хватает некоторых, если ваша цель - обновить базу данных Access: https://msdn.microsoft.com/en-us/library/system.data.common.dataadapter.update%28v=vs.110%29.aspx –

ответ

0

Полный путь длины к базе данных, требуемой в строке подключения.

+0

Если вы не задали исходную строку подключения в вопросе; и обновленную строку соединения здесь, нет никакого способа, чтобы будущий посетитель, посетивший этот вопрос, знал, что такое ответ, или что проблема даже выглядела. Близкая причина, по которой я первоначально использовал (и причина, по которой она сейчас находится), заключается в том, что нам нужен MCVE; минимальный * полный * проверяемый пример. «Полная» часть - это то, чего не хватает. –

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