none
Информация в Access обновляется только после перезапуска

    Вопрос

  • Помогите разобраться. Добавляю запись в БД Access, но эта запись появляется в приложении только после его перезапуска. Что не так сделано?
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.OleDb;
    namespace WindowsFormsApplication1
    {
     public partial class Form2 : Form
     {
     public Form2()
     {
     InitializeComponent();
     }
    private void button1_Click(object sender, EventArgs e)
     {
     OleDbConnection con = new OleDbConnection();
     con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= C:\Users\Компьютер\Desktop\WindowsFormsApplication1\WindowsFormsApplication1\Microsoft Access База данных.accdb";
     con.Open();
     OleDbCommand cmd = new OleDbCommand();
     cmd.Connection = con;
     cmd.CommandText = "INSERT INTO Таблица1(Имя) values('" + textBox1.Text + "')";
     cmd.ExecuteNonQuery();
     con.Close();
     Form2 form2 = new Form2();
     this.Close();
      }
     }
    }

    16 апреля 2017 г. 18:43

Ответы

  • Это не отменяет необходимости повторно загрузить данные в форму, в которой отображается "сама база".
    17 апреля 2017 г. 7:01
  • Данные заносятся через форму, после чего эта форма закрывается. Остается открыта только форма в которой отображается сама база

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

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

    Так же ваш код подвержен атакам SQL Injection. Это значит что кто угодно может делать с вашей базой что угодно.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    19 апреля 2017 г. 16:28

Все ответы

  • "Что не так сделано?"

    Кэп сообщает, что надо повторно загрузить данные в программу, если меняете их напрямую в базе...

    16 апреля 2017 г. 18:51
  • Данные заносятся через форму, после чего эта форма закрывается. Остается открыта только форма в которой отображается сама база
    16 апреля 2017 г. 18:56
  • Это не отменяет необходимости повторно загрузить данные в форму, в которой отображается "сама база".
    17 апреля 2017 г. 7:01
  • Данные заносятся через форму, после чего эта форма закрывается. Остается открыта только форма в которой отображается сама база

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

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

    Так же ваш код подвержен атакам SQL Injection. Это значит что кто угодно может делать с вашей базой что угодно.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    19 апреля 2017 г. 16:28